我通过存储两个简单常量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>);
这甚至可能吗?
答案 0 :(得分:10)
这可以使用Enumerable.Range
List<int> integerList = Enumerable.Range(MinValue, MaxValue - MinValue).ToList();
答案 1 :(得分:3)
只需使用Enumerable.Range(int start, int count)
method:
在指定范围内生成一系列整数。
一个简单的示例,使用您的MinValue
和MaxValue
变量:
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