从另一个列表创建一个列表

本文关键字:列表 一个 另一个 创建 | 更新日期: 2023-09-27 18:17:19

假设我有:

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

从另一个列表创建一个列表

如何创建,从initialList,另一个列表调用Plus5()initialList的每个元素的构造函数?

所以结果是List<Plus5> newList,您想为initialList中的每个int创建一个新的Plus5:

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

使用LINQ将列表中的每个数字加5

var result = initialList.Select(x => x + 5);

您可以像roughnex提到的那样使用LINQ。

var result = initialList.Select(x => x + 5).ToList();

如果您有一个方法(如Plus5),它将看起来像这样

int Plus5(int i)
{
    return I + 5;
}
var result = initialList.Select(Plus5).ToList();
List<Plus5> result = new List<Plus5>(InitialList.Select(x=>new Plus5(x)).ToList()));