使用LINQ填充具有特定数字范围的列表

时间:2012-02-20 13:04:32

标签: c# linq list range

为了使用 1到n 中的一系列数字填充List<int>,我可以使用:

for (i=1; i<=n; i++)
{
   myList.Add(i);
}

使用LINQ内联表达式有没有办法实现相同的结果?

更新

假设我有一个方法getMonthName(i),给定整数返回月份的名称。我可以使用Enumerable

以某种方式直接使用月份名称填充列表

3 个答案:

答案 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的方法。这就是保留所有这些东西的地方。不要错过ToLookupConcat(vs Union)和Repeat

答案 2 :(得分:3)

对于月份名称,您可以使用Select()

var months = Enumerable.Range(1,n).Select(getMonthName);