是否有一种更简单或更优雅的方法来初始化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
答案 0 :(得分:174)
您可以利用Enumerable.Range()
方法:
var numberList = Enumerable.Range(1, 10).ToList();
第一个参数是从头开始的整数,第二个参数是要包含多少个连续整数。
答案 1 :(得分:41)
如果您的初始化列表与从from
到end
的连续值序列一样简单,您可以说
var numbers = Enumerable.Range(from, end - from + 1)
.ToList();
如果您的初始化列表更复杂,可以通过f
到int
的映射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
素数。