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

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

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

除了下面这个显而易见的例子,C # 中还有什么等价物吗?

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

看看 C # 3.0的 集合初始化器

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

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

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

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

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

您可以使用 集合初始化程序来简化 C # 中的代码行。

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

你可以去掉 new string[]部分:

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

如果你想减少杂乱,考虑一下

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

这使用了 C # 3.0的两个特性: 类型推断(var关键字)和列表的集合初始化器。

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

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

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

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

然后使用是非常紧凑的:

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

你可以用

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 });

Stack

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

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

如果您想创建一个具有值的类型化列表,以下是语法。

假设一班学生喜欢

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"}
};

你只需要:

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

或者

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

收银台: 对象和集合初始化器(C # 编程指南)

如果我们假设有一个名为 Country 的类,那么我们可以这样做:

var countries = new List<Country>
{
new Country { Id=1, Name="Germany", Code="De" },
new Country { Id=2, Name="France",  Code="Fr" }
};