2011-10-08 26 views

cevap

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

bu deneyin:

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

Üzgünüm, sadece dizeye dönüştürülür.

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

katılma ve daha sonra bölme bana oldukça verimsiz görünmektedir. Neden sadece 'Seç' kullanılmıyor? –

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

Bu, bir baskı benim için 31 satır :).

enter image description here

+0

_n_ _IEnumerable_'dan devralınamadığı için _test_, ertelenmiş yürütme tarafından uygulanır. _GetRange_ tarafından döndürülen değer, eylemi gerçekleştirmek için gerekli olan bilgidir. Nesne _GetEnumerator_ yöntemini çağırarak veya _foreach_ kullanarak numaralandırılana kadar sorgu ** gerçekleştirilmez. –

+1

@JimLahman, haklıyken, verilen kodda, sorgu, "foreach" dan önce gelen ".ToList()" yönteminde yürütülür. "Foreach" yürütüldüğünde, liste zaten tüm dize değerlerini içerir. –