我有一个名为Fruit
的课程如下:
public class Fruit
{
public int FruitId { get; set; }
public string Description { get; set; }
}
我的目的是构建一个List<Fruit>
,我可以使用以下代码实现:
List<Fruit> fruits = new List<Fruit>();
Fruit a = new Fruit();
a.FruitId = 1;
a.Description = "Apple";
fruits.Add(a);
Fruit b = new Fruit();
b.FruitId = 2;
b.Description = "Ananas";
fruits.Add(b);
我正在使用.net 4.0。 请告诉我,建立清单的不同方法有哪些?
答案 0 :(得分:5)
使用Collection Initializer。它的可读性更高。
List<Fruit> fruits = new List<Fruit>
{
new Fruit()
{
FruitId = 1,
Description = "Apple"
},
new Fruit()
{
FruitId = 1,
Description = "Ananas"
}
};
对于您当前的代码,如果您以后不会在代码中使用对象a
和b
,并且只使用它们来填充列表,那么使用集合初始化程序会更好
答案 1 :(得分:2)
您的代码可以使用Collection Initializer Syntax重写,如下所示:
var fruits = new List<Fruit> {
new Fruit { FruitId = 1, Description = "Apple"},
new Fruit { FruidId = 2, Description = "Ananas"}
};
另请注意使用var Keyword以避免重复。
答案 2 :(得分:2)
最干净的解决方案可能是为Fruit
类编写构造函数:
public class Fruit {
...
public Fruit(int id, string desc){
this.FruitId = id;
this.Description = desc;
}
}
现在用它初始化列表:
List<Fruit> fruits = new List<Fruit> {
new Fruit(1, "Apple"), new Fruit(2, "Ananas")
}
缺点是你必须编写构造函数(无论如何,好的做法,因为你的属性是公共的),并且好处是列表的初始化现在更加清晰,因为你不必写{{1 }}和FruitId
一直都是!
答案 3 :(得分:0)
我会在集合中使用初始化程序:
List<Fruit> fruits = new List<Fruit>
{
new Fruit(){ FruitId = 1, Description = "Apple" },
new Fruit(){ FruitId = 2, Description = "Ananas" },
};