Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从另一个列表创建列表_C#_Linq - Fatal编程技术网

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