C# 构建对象列表的不同方法
我有一个叫做水果的课程,如下所示:C# 构建对象列表的不同方法,c#,.net,c#-4.0,C#,.net,C# 4.0,我有一个叫做水果的课程,如下所示: public class Fruit { public int FruitId { get; set; } public string Description { get; set; } } 我的意图是构建一个列表,我可以使用以下代码实现该列表: List<Fruit> fruits = new List<Fruit>(); Fruit a = new Fruit(); a.FruitId = 1; a.Descrip
public class Fruit
{
public int FruitId { get; set; }
public string Description { get; set; }
}
我的意图是构建一个列表,我可以使用以下代码实现该列表:
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);
我正在使用.NET4.0。
请让我知道,建立列表的不同方式是什么?使用。在我看来,它更具可读性
List<Fruit> fruits = new List<Fruit>
{
new Fruit()
{
FruitId = 1,
Description = "Apple"
},
new Fruit()
{
FruitId = 1,
Description = "Ananas"
}
};
对于当前代码,如果以后不打算在代码中使用对象a和对象b,并且只使用它们来填充列表,则最好使用集合初始值设定项。可以使用重写代码,如下所示:
var fruits = new List<Fruit> {
new Fruit { FruitId = 1, Description = "Apple"},
new Fruit { FruidId = 2, Description = "Ananas"}
};
还要注意使用以避免重复。我将在集合上使用initilizer:
List<Fruit> fruits = new List<Fruit>
{
new Fruit(){ FruitId = 1, Description = "Apple" },
new Fruit(){ FruitId = 2, Description = "Ananas" },
};
最干净的解决方案可能是为您的水果类编写构造函数: 现在用它初始化列表:
List<Fruit> fruits = new List<Fruit> {
new Fruit(1, "Apple"), new Fruit(2, "Ananas")
}
缺点是你无论如何都必须编写构造函数,因为你的属性是公共的,优点是列表的初始化现在更加清晰了,因为你不必一直写fructid和Description -1您的回答没有提供足够的信息。这只是一个链接。@HighCore不太喜欢向下投票并提供基本相同的竞争性答案。@HighCore添加代码并不是什么大问题,这就是Habib在几秒钟内所做的回答。@Andrey仍然只是一个链接的答案值得向下投票。@HighCore这当然取决于你,但我不同意。答案是关于主题的,有用且正确,但可能更好。我只会对误导性的或完全脱离主题的答案投反对票,官方的帮助也会同意我或我的观点:对帖子投反对票会发出相反的信号:该帖子包含错误的信息,研究不力,或者无法传达信息。是否要手动创建水果对象?或者,这可以在一个循环中完成吗?同样,如果你总是在实例化的时候知道结果和描述,那么你可以考虑把它们放在构造函数中作为参数。否则,您只是跨多行代码复制功能,除非您按照ledbutter的建议在循环中实例化。。。
List<Fruit> fruits = new List<Fruit> {
new Fruit(1, "Apple"), new Fruit(2, "Ananas")
}