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

可能的复制品:
在.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

116417 次浏览

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

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

第一个参数是要从哪个整数开始,第二个参数是要包含多少个顺序整数。

如果初始化列表非常简单,就像从 fromend的连续值序列一样,那么只需说

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

如果初始化列表比较复杂,可以通过从 intint的映射 f来定义,那么可以这样说

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

例如:

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

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