Заполните список с определенным диапазоном чисел с помощью LINQ - PullRequest
28 голосов
/ 20 февраля 2012

Чтобы заполнить List<int> диапазоном чисел от 1 до n , я могу использовать:

for (i=1; i<=n; i++)
{
   myList.Add(i);
}

Есть ли способ достичь того же результата с помощью встроенных выражений LINQ?

ОБНОВЛЕНИЕ

Предположим, у меня есть метод getMonthName(i), который, учитывая целое число, возвращает название месяца. Могу ли я как-то заполнить список названиями месяцев, используя Enumerable

Ответы [ 3 ]

46 голосов
/ 20 февраля 2012
Enumerable.Range(1,12).Select(getMonthName);
30 голосов
/ 20 февраля 2012

Вы хотите использовать Enumerable.Range.

myList.AddRange(Enumerable.Range(1, n));

Или

myList = Enumerable.Range(1, n).ToList();

Если вы задаете такой вопрос, выВозможно, вы захотите просмотреть методы System.Linq.Enumerable .Вот где все это хранится.Не пропустите ToLookup, Concat (против Union) и Repeat.

3 голосов
/ 20 февраля 2012

Для названий месяцев вы можете использовать Select():

var months = Enumerable.Range(1,n).Select(getMonthName);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...