2009-08-13 12 views
37

Esto aparece de vez en cuando para mí: tengo un código de C# que desea la función range() disponible en Python.¿Hay un equivalente de rango de pitones (12) en C#?

Soy consciente de utilizar

for (int i = 0; i < 12; i++) 
{ 
    // add code here 
} 

Pero esta frenos hacia abajo en los usos funcionales, como cuando quieren hacer un LINQ Sum() en lugar de escribir el bucle anterior.

¿Hay algún builtin incorporado? Supongo que siempre podría hacer mi propio con un yield o similar, pero esto sería por lo que útil para solo tiene.

+0

No es Enumeration.Range, es Enumerable.Range. –

+0

lo arregló. Gracias. –

Respuesta

72

Usted está buscando el método :

var mySequence = Enumerable.Range(0, 12); 
+1

Nota: esto requiere System.Linq y C# 3.0. – crb

+0

crb: C# 3 no es necesario. Puede usar esta clase desde C# 2 pero necesita hacer referencia al System.Core que está en el framework .NET 3.5. –

+5

Esto es confuso porque creo que la versión de Python es '(inicio, final)' donde la versión de .NET es '(inicio, conteo)' - ¡no cometa el error de mezclarlos! – jocull

6
Enumerable.Range(start, numElements); 
5

Enumerable.Range (0,12);

13

Sólo para complementar las respuestas de todos, pensé que debería añadir que Enumerable.Range(0, 12); está más cerca de Python 2.x de xrange(12) porque es un enumerable.

Si alguien requiere específicamente una lista o una matriz:

Enumerable.Range(0, 12).ToList(); 

o

Enumerable.Range(0, 12).ToArray(); 

están más cerca de Python de range(12).

Cuestiones relacionadas