2011-01-03 29 views

Respuesta

150

Puede usar Enumerable.Range(0, 10);. Ejemplo:

var seq = Enumerable.Range(0, 10); 

MSDN página here.

+38

Nota: Esto crea una secuencia de arranque a 0 con 10 artículos (que terminan a las 9). Si desea 0 * a * 10, el segundo parámetro sería 11. Y si necesita una matriz real y no 'IEnumerable ', incluya una llamada '.ToArray()'. –

15

Se puede crear una función simple. Esto funcionaría para una secuencia más complicada. De lo contrario, el Enumerable.Range debería hacer.

IEnumerable<int> Sequence(int n1, int n2) 
{ 
    while (n1 <= n2) 
    { 
     yield return n1++; 
    } 
} 
+5

Wow, esto me hizo entender cómo funciona el 'rendimiento': D – v01pe

1

Mi aplicación:

private static IEnumerable<int> Sequence(int start, int end) 
    { 
     switch (Math.Sign(end - start)) 
     { 
      case -1: 
       while (start >= end) 
       { 
        yield return start--; 
       } 

       break; 

      case 1: 
       while (start <= end) 
       { 
        yield return start++; 
       } 

       break; 

      default: 
       yield break; 
     } 
    } 
Cuestiones relacionadas