在C#中创建值列表的快速方法?

时间:2009-04-06 21:00:01

标签: c# list

我正在寻找一种在C#中创建值列表的快捷方法。在Java中,我经常使用下面的代码段:

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

除了下面明显的C#之外,C#中还有其他等价物吗?

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

11 个答案:

答案 0 :(得分:139)

查看C#3.0的Collection Initializers

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

答案 1 :(得分:16)

如果您希望减少混乱,请考虑

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

这使用了C#3.0的两个功能:类型推断(var关键字)和列表的集合初始值设定项。

或者,如果你可以使用数组,这甚至更短(少量):

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

答案 2 :(得分:8)

在C#3中,你可以这样做:

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

这使用C#3中的新集合初始化程序语法。

在C#2中,我会使用你的第二个选项。

答案 3 :(得分:6)

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

答案 4 :(得分:5)

您可以放弃new string[]部分:

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

答案 5 :(得分:4)

您可以使用collection initialiser在C#中略微简化该行代码。

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

答案 6 :(得分:1)

您可以创建辅助通用静态方法来创建列表:

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

然后使用非常紧凑:

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

答案 7 :(得分:1)

你可以用

做到这一点
var list = new List<string>{ "foo", "bar" };

以下是其他常见数据结构的一些其他常见实例:

词典

var dictionary = new Dictionary<string, string> 
{
    { "texas",   "TX" },
    { "utah",    "UT" },
    { "florida", "FL" }
};

数组列表

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

队列

var queque = new Queue<int>(new[] { 1, 2, 3 });

堆栈

var queque = new Stack<int>(new[] { 1, 2, 3 });

正如您在大多数情况下所看到的那样,它只是在花括号中添加值,或者实例化一个新数组,后跟花括号和值。

答案 8 :(得分:0)

如果要创建带有值的类型列表,请使用以下语法。

假设某类学生喜欢

public class Student {
   public int StudentID { get; set; }
   public string StudentName { get; set; }
 }   

您可以列出这样的列表:

IList<Student> studentList = new List<Student>() { 
                new Student(){ StudentID=1, StudentName="Bill"},
                new Student(){ StudentID=2, StudentName="Steve"},
                new Student(){ StudentID=3, StudentName="Ram"},
                new Student(){ StudentID=1, StudentName="Moin"}
            };

答案 9 :(得分:0)

你可以:

var list = new List<string> { "red", "green", "blue" };

List<string> list = new List<string> { "red", "green", "blue" };

结帐:Object and Collection Initializers (C# Programming Guide)

答案 10 :(得分:-5)

快速列出值? 甚至是一个对象列表!

我只是C#语言的初学者,但我喜欢使用

  • Hashtable
  • Arraylist
  • Datatable
  • 数据集

存储项目的方法太多了