Home » c# » Quick way to create a list of values in C#?

Quick way to create a list of values in C#?

Posted by: admin November 29, 2017 Leave a comment

Questions:

I’m looking for a quick way to create a list of values in C#. In Java I frequently use the snippet below:

List<String> l = Arrays.asList("test1","test2","test3");

Is there any equivalent in C# apart from the obvious one below?

IList<string> l = new List<string>(new string[] {"test1","test2","test3"});
Answers:

Check out C# 3.0’s Collection Initializers.

var list = new List<string> { "test1", "test2", "test3" };

Questions:
Answers:

If you’re looking to reduce clutter, consider

var lst = new List<string> { "foo", "bar" };

This uses two features of C# 3.0: type inference (the var keyword) and the collection initializer for lists.

Alternatively, if you can make do with an array, this is even shorter (by a small amount):

var arr = new [] { "foo", "bar" };

Questions:
Answers:

In C# 3, you can do:

IList<string> l = new List<string> { "test1", "test2", "test3" };

This uses the new collection initializer syntax in C# 3.

In C# 2, I would just use your second option.

Questions:
Answers:
IList<string> list = new List<string> {"test1", "test2", "test3"}

Questions:
Answers:

You can drop the new string[] part:

List<string> values = new List<string> { "one", "two", "three" };

Questions:
Answers:

You can simplify that line of code slightly in C# by using a collection initialiser.

var lst = new List<string> {"test1","test2","test3"};

Questions:
Answers:

You can create helper generic, static method to create list:

internal static class List
{
    public static List<T> Of<T>(params T[] args)
    {
        return new List<T>(args);
    }
}

And then usage is very compact:

List.Of("test1", "test2", "test3")

Questions:
Answers:

A list of values quickly?
Or even a list of objects!

I am just a beginner at the C# language but I like using

  • Hashtable
  • Arraylist
  • Datatable
  • Datasets

etc.

There’s just too many ways to store items