使用LINQ查询</int>初始化List <int>

时间:2011-08-19 20:56:39

标签: c# linq

我通过存储两个简单常量MinValue和MaxValue来初始化构造函数中的List<int>

private const int MinValue = 1;
private const int MaxValue = 100;

private List<int> integerList = new List<int>();

public Class()
{
    for (int i = MinValue ; i < MaxValue ; i++)
    {
        integerList .Add(i);
    }
}

有没有办法只用简单的LINQ查询初始化列表?由于可以使用List<T>构建IEnumerable<T>,是否存在以下表单的查询?

private List<int> integerList = new List<int>(<insert query here>);

这甚至可能吗?

6 个答案:

答案 0 :(得分:10)

这可以使用Enumerable.Range

来实现
List<int> integerList = Enumerable.Range(MinValue, MaxValue - MinValue).ToList();

答案 1 :(得分:3)

只需使用Enumerable.Range(int start, int count) method

  

在指定范围内生成一系列整数。

一个简单的示例,使用您的MinValueMaxValue变量:

List<int> integerList = Enumerable.Range(MinValue, MaxValue - MinValue).ToList();

请注意,如果MaxValue小于MinValue,则count参数将小于零,并且会抛出ArgumentOutOfRangeException

答案 2 :(得分:2)

假设MaxValue总是&gt; MINVALUE,

var integerList = Enumerable.Range(MinValue, MaxValue-MinValue).ToList();

答案 3 :(得分:1)

您可以使用集合初始值设定项。

http://msdn.microsoft.com/en-us/library/bb384062.aspx

private List integerList = new List {MinValue,MaxValue};

答案 4 :(得分:1)

您可以使用Enumerable.Range

List<int> integerList = Enumerable.Range(MinValue, MaxValue - MinValue).ToList();

答案 5 :(得分:1)

尝试IEnumerable.Range(MinValue,MaxValue-MinValue).ToList():MSDN