我正在寻找一种在C#中创建值列表的快捷方法。在Java中,我经常使用下面的代码段:
List<String> l = Arrays.asList("test1","test2","test3");
除了下面明显的C#之外,C#中还有其他等价物吗?
IList<string> l = new List<string>(new string[] {"test1","test2","test3"});
答案 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#语言的初学者,但我喜欢使用
等
存储项目的方法太多了