让我们说:
class Plus5 {
Plus5(int i) {
i+5;
}
}
List<int> initialList = [0,1,2,3]
我如何从initialList创建另一个为initialList的每个元素调用Plus5()构造函数的列表。 比什么更好?
List<Plus5> newList = new List<Plus5>();
initialList.ForEach( i => newList.Add(Plus5(int)));
答案 0 :(得分:14)
我如何从initialList创建另一个名为Plus5()的列表 initialList的每个元素的构造函数?
结果是List<Plus5> newList
,您想为Plus5
中的每个int
创建一个新的initialList
:
List<Plus5> newList = initialList.Select(i => new Plus5(i)).ToList();
如果你想微优化(节省内存):
List<Plus5> newList = new List<Plus5>(initialList.Count);
newList.AddRange(initialList.Select(i => new Plus5(i)));
答案 1 :(得分:8)
使用LINQ为列表中的每个数字添加5。
var result = initialList.Select(x => x + 5);
答案 2 :(得分:1)
你可以使用LINQ作为roughnex提到的。
var result = initialList.Select(x => x + 5).ToList();
如果你有一个方法(比如Plus5),它会是这样的
int Plus5(int i)
{
return I + 5;
}
var result = initialList.Select(Plus5).ToList();
答案 3 :(得分:1)
List<Plus5> result = new List<Plus5>(InitialList.Select(x=>new Plus5(x)).ToList()));