2011-10-08 11 views

Respuesta

25
var list = Enumerable.Range(1, 31).Select(n => n.ToString()).ToList(); 
2

Prueba esto:

string list = string.Join(string.Empty, Enumerable.Range(1, 31)); 

Lo sentimos, convertí sólo para cadena.

var list = string.Join(",", Enumerable.Range(1, 31)).Split(',').ToList(); 
+0

unión y luego división parece bastante ineficiente para mí. ¿Por qué no simplemente usar un 'Seleccionar'? –

6
static void Main(string[] args) 
    { 
     List<string> test; 
     test = Enumerable.Range(1, 31).Select(n => n.ToString()).ToList(); 
     foreach (var item in test) 
     { 
      Console.WriteLine(item); 
     } 
     Console.ReadLine(); 
    } 

Ésta impresión 31 líneas para mí :).

enter image description here

+0

Dado que _n_ no se hereda de _IEnumerable_, _test_ se implementa mediante la ejecución diferida. El valor devuelto por _GetRange_ es la información requerida para realizar la acción. La consulta no se ** realiza ** hasta que el objeto se enumera llamando a su método _GetEnumerator_ o usando _foreach_. –

+1

@JimLahman, mientras tiene razón, en el código proporcionado, la consulta se ejecuta en el método '.ToList()', que viene antes del 'foreach'. En el momento en que se ejecuta el 'foreach', la lista ya contiene todos los valores de cadena. –

Cuestiones relacionadas