Llenar una lista de números enteros en .NET
Pregunta
Necesito una lista de números enteros de 1 a x, donde x es fijado por el usuario.Yo podría construir con un bucle for por ejemplo suponiendo que x es un número entero especificado anteriormente:
List<int> iList = new List<int>();
for (int i = 1; i <= x; i++)
{
iList.Add(i);
}
Esto parece tonto, seguro que hay una forma más elegante de hacer esto, algo así como el PHP método de intervalo
Solución
Si usted está usando .Net 3.5, Enumerable.Rango de es lo que usted necesita.
Genera una secuencia de integral los números dentro de un rango especificado.
Otros consejos
LINQ to the rescue:
// 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();
Yo soy uno de los muchos que tiene escribió en su blog sobre un rubí-esque A método de extensión que se puede 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;
}
}
}
A continuación, puede crear su lista de enteros como este
List<int> = first.To(last).ToList();
o
List<int> = 1.To(x).ToList();
Aquí está un breve método que devuelve una Lista de enteros.
public static List<int> MakeSequence(int startingValue, int sequenceLength)
{
return Enumerable.Range(startingValue, sequenceLength).ToList<int>();
}