Генерация списка номеров в C # - PullRequest
49 голосов
/ 26 июня 2011

Мне часто нужно создавать списки номеров.Интервалы могут иметь довольно много чисел.У меня есть такой метод:

public static int[] GetNumbers(int start, int end)
{
    List<int> list = new List<int>();
    for (int i = start; i < end; i++)
        list.Add(i);
    return list.ToArray();
}

Есть ли способ сделать его проще, быстрее?

Я использую .NET 3.5

1 Ответ

114 голосов
/ 26 июня 2011

Это, вероятно, будет немного быстрее - и, конечно, проще:

int[] values = Enumerable.Range(start, end - start).ToArray();

Вам определенно нужно это как массив?Если вам нужно только перебрать его, вы можете просто использовать Enumerable.Range напрямую, чтобы получить IEnumerable<int>, которому никогда не нужно фактически хранить все числа в памяти одновременно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...