Простой способ заполнить список целыми числами в .NET.

Возможный дубликат:
Заполнение списка целых чисел в .NET

Есть ли более простой или более элегантный способ инициализации списка целых чисел в С#, кроме этого?

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

Ответ 1

Поскольку вы уже используете С#, вы можете использовать метод Enumerable.Range():

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

Первый параметр - это целое число для начала, а второй параметр - количество последовательных целых чисел.

Ответ 2

Если ваш список инициализации прост, как последовательная последовательность значений от 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 th prime.