从另一个列表创建列表

时间:2013-06-05 22:07:09

标签: c# linq

让我们说:

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

4 个答案:

答案 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()));