2011-10-08 7 views

답변

25
var list = Enumerable.Range(1, 31).Select(n => n.ToString()).ToList(); 
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'가 실행될 때,리스트에는 이미 모든 문자열 값이 들어 있습니다. –