2011-10-08 303 views

回答

2

試試這個:

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

對不起,我只轉換爲字符串。

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

加入,然後分裂似乎相當低效率給我。爲什麼不使用「選擇」? –

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

這一次印刷31線我:)。

enter image description here

+0

由於_n_不是從_IEnumerable_繼承的,因此_test_是通過延遲執行來實現的。 _GetRange_返回的值是執行該操作所需的信息。直到通過調用其_GetEnumerator_方法或使用_foreach_枚舉對象才能執行查詢**。 –

+1

@JimLahman,雖然你是對的,但在給定的代碼中,查詢是在'foreach'之前的'.ToList()'方法中執行的。在執行'foreach'時,列表已經包含了所有的字符串值。 –