Вопрос

Мне нужен список целых чисел от 1 до x, где x задается пользователем.Я мог бы построить его с помощью цикла for, например, предполагая, что x - это целое число, установленное ранее:

List<int> iList = new List<int>();
for (int i = 1; i <= x; i++)
{
    iList.Add(i);
}

Это кажется глупым, конечно, есть более элегантный способ сделать это, что-то вроде Метод диапазона PHP

Это было полезно?

Решение

Если вы используете .Net 3.5, Перечислимый.Диапазон это то, что вам нужно.

Генерирует последовательность целых чисел в пределах указанного диапазона.

Другие советы

LINQ спешит на помощь:

// Adding value to existing list
var list = new List<int>();
list.AddRange(Enumerable.Range(1, x));

// Creating new list
var list = Enumerable.Range(1, x).ToList();

Видишь Операторы генерации вкл . LINQ 101

Я один из многих, у кого есть в блоге о чем-то рубиновом Для метод расширения, который вы можете написать, если используете C #3.0:


public static class IntegerExtensions
{
    public static IEnumerable<int> To(this int first, int last)
    {
        for (int i = first; i <= last; i++)
{ yield return i; } } }

Затем вы можете создать свой список целых чисел следующим образом

List<int> = first.To(last).ToList();

или

List<int> = 1.To(x).ToList();

Вот короткий метод, который возвращает список целых чисел.

    public static List<int> MakeSequence(int startingValue, int sequenceLength)
    {
        return Enumerable.Range(startingValue, sequenceLength).ToList<int>();
    }
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top