Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/279.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# LINQ允许简化这种构造吗?_C#_.net_Linq - Fatal编程技术网

C# LINQ允许简化这种构造吗?

C# LINQ允许简化这种构造吗?,c#,.net,linq,C#,.net,Linq,我有一个列表列表MyValues=新列表{}。在我的程序中,我需要硬编码以下内容: MyValues.Add(MyFunc(1)); MyValues.Add(MyFunc(2)); ... MyValues.Add(MyFunc(20)); 当然,我可以做一个循环。但是我想应该有一个LINQ结构,它允许用一个简单的结构代替这个循环来填充列表 有人能建议这样一个LINQ结构来填充我的列表吗 非常感谢 是的,您可以使用来生成所有数字,同时使用选择进行转换;并使用AddRange将所有元素添加到列

我有一个列表<代码>列表MyValues=新列表{}。在我的程序中,我需要硬编码以下内容:

MyValues.Add(MyFunc(1)); MyValues.Add(MyFunc(2)); ... MyValues.Add(MyFunc(20));
当然,我可以做一个循环。但是我想应该有一个LINQ结构,它允许用一个简单的结构代替这个循环来填充列表

有人能建议这样一个LINQ结构来填充我的列表吗

非常感谢

是的,您可以使用来生成所有数字,同时使用
选择
进行转换;并使用
AddRange
将所有元素添加到列表中

MyValues.AddRange(Enumerable.Range(1, 20).Select(i => MyFunc(i)));

您可以使用以下方法简化此过程:

List myValues=Enumerable.Range(1,20)。选择(MyFunc.ToList();

虽然这是可能的,但我不认为它比
for
循环更简单。如果您想使代码尽可能容易理解,我不推荐任何LINQ助手函数。
List<string> myValues = Enumerable.Range(1, 20).Select(MyFunc).ToList();