C# 从另一个列表创建列表
假设我有:C# 从另一个列表创建列表,c#,linq,C#,Linq,假设我有: class Plus5 { Plus5(int i) { i+5; } } List<int> initialList = [0,1,2,3] 使用LINQ向列表中的每个数字添加5 var result = initialList.Select(x => x + 5); 如何从initialList创建另一个名为Plus5()的列表 初始列表中每个元素的构造函数 因此,结果是List newList,您希望为initialLi
class Plus5 {
Plus5(int i) {
i+5;
}
}
List<int> initialList = [0,1,2,3]
使用LINQ向列表中的每个数字添加5
var result = initialList.Select(x => x + 5);
如何从initialList创建另一个名为Plus5()的列表
初始列表中每个元素的构造函数
因此,结果是List newList
,您希望为initialList
中的每个int
创建一个新的Plus5
:
List<Plus5> newList = initialList.Select(i => new Plus5(i)).ToList();
List newList=initialList.Select(i=>newplus5(i)).ToList();
如果要进行微优化(节省内存):
List newList=新列表(initialList.Count);
AddRange(initialList.Select(i=>newplus5(i));
您可以使用前面提到的LINQ
var result = initialList.Select(x => x + 5).ToList();
如果你有一个方法(比如Plus5),它看起来是这样的
int Plus5(int i)
{
return I + 5;
}
var result = initialList.Select(Plus5).ToList();
List result=newlist(InitialList.Select(x=>newplus5(x)).ToList());
是的,我正在从INTI的初始列表中创建一个Plus5列表。您为什么要使用Plus5
类型?听起来你可能只是想建立一个新的int
列表,其中int
恰好增加了5。只是举个例子,很好,我没有意识到Select有那么大的威力。看看这个链接。这是学习LINQ的一个很好的起点。这是一个正确的答案。但是,您可能想建议一个替代解决方案,他可以创建一个列表
,这样int
恰好增加了5:)@steaks:似乎拉夫耐克斯已经发布了该方法(至少IEnumerable
)。然而,这不是OP所要求的。是的,这是正确的答案。谢谢你,+5只是一个例子:数据甚至不会编译。您正试图通过将List
作为构造函数参数传入来构造List
。
var result = initialList.Select(x => x + 5).ToList();
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()));