c# .net list integer

public list c#



Llenar una lista de enteros en.NET (4)

Aquí hay un método corto que devuelve una lista de enteros.

public static List<int> MakeSequence(int startingValue, int sequenceLength) { return Enumerable.Range(startingValue, sequenceLength).ToList<int>(); }

Necesito una lista de enteros de 1 a x donde x es establecido por el usuario. Podría construirlo con un ciclo for, por ejemplo, suponiendo que x es un conjunto entero previamente:

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

Esto parece tonto, seguramente hay una manera más elegante de hacer esto, algo así como el método de rango PHP


LINQ al rescate:

// 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();

Ver Operadores de generación en LINQ 101


Si usa .Net 3.5, Enumerable.Range es lo que necesita.

Genera una secuencia de números enteros dentro de un rango especificado.


Soy uno de los muchos que blogged sobre un método de extensión de Ruby que puedes escribir si estás usando 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; } } }

Entonces puedes crear tu lista de enteros como este

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

o

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