2011-10-08 283 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'时,列表已经包含了所有的字符串值。 –