在.NET中使用整数填充列表的更简单方法

时间:2011-02-07 20:46:05

标签: c# .net linq list

  

可能重复:
  Populating a list of integers in .NET

是否有一种更简单或更优雅的方法来初始化C#中的整数列表?

List<int> numberList = new List<int>() { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

for(int i = 1; i <= 10; i++)
{
    numberList.Add(i);
}

它似乎不太实际 - 特别是如果列表包含大量值。循环是一个更实用的解决方案吗?

谢谢,

CC

2 个答案:

答案 0 :(得分:174)

您可以利用Enumerable.Range()方法:

var numberList = Enumerable.Range(1, 10).ToList();

第一个参数是从头开始的整数,第二个参数是要包含多少个连续整数。

答案 1 :(得分:41)

如果您的初始化列表与从fromend的连续值序列一样简单,您可以说

var numbers = Enumerable.Range(from, end - from + 1)
                        .ToList();

如果您的初始化列表更复杂,可以通过fint的映射int来定义,您可以说

var numbers = Enumerable.Range(from, end - from + 1)
                        .Select(n => f(n))
                        .ToList();

例如:

var primes = Enumerable.Range(1, 10)
                       .Select(n => Prime(n))
                       .ToList();

将生成前十个素数,假设Prime是一个Func<int, int>,它取int n并返回n素数。