为了使用 1到n 中的一系列数字填充List<int>
,我可以使用:
for (i=1; i<=n; i++)
{
myList.Add(i);
}
使用LINQ内联表达式有没有办法实现相同的结果?
更新
假设我有一个方法getMonthName(i)
,给定整数返回月份的名称。我可以使用Enumerable
答案 0 :(得分:45)
Enumerable.Range(1,12).Select(getMonthName);
答案 1 :(得分:29)
您想使用Enumerable.Range
。
myList.AddRange(Enumerable.Range(1, n));
或者
myList = Enumerable.Range(1, n).ToList();
如果您提出这类问题,可能需要查看System.Linq.Enumerable的方法。这就是保留所有这些东西的地方。不要错过ToLookup
,Concat
(vs Union
)和Repeat
。
答案 2 :(得分:3)
对于月份名称,您可以使用Select()
:
var months = Enumerable.Range(1,n).Select(getMonthName);