C# LINQ允许简化这种构造吗?
我有一个列表<代码>列表MyValues=新列表{}代码>。在我的程序中,我需要硬编码以下内容: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.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();