2011-01-03 31 views

Trả lời

150

Bạn có thể sử dụng Enumerable.Range(0, 10);. Ví dụ:

var seq = Enumerable.Range(0, 10); 

Trang MSDN here.

+38

Lưu ý: Điều này tạo ra một chuỗi bắt đầu từ 0 với 10 mặt hàng (kết thúc vào lúc 9). Nếu bạn muốn 0 * đến * 10, tham số thứ hai sẽ là 11. Và nếu bạn cần một mảng thực tế và không phải là 'IEnumerable ', bao gồm một cuộc gọi' .ToArray() '. –

15

Bạn có thể tạo một hàm đơn giản. Điều này sẽ làm việc cho một chuỗi phức tạp hơn. Nếu không, Enumerable.Range sẽ thực hiện.

IEnumerable<int> Sequence(int n1, int n2) 
{ 
    while (n1 <= n2) 
    { 
     yield return n1++; 
    } 
} 
+5

Chà, điều này khiến tôi hiểu cách thức hoạt động của 'yield': D – v01pe

1

thực hiện của tôi:

private static IEnumerable<int> Sequence(int start, int end) 
    { 
     switch (Math.Sign(end - start)) 
     { 
      case -1: 
       while (start >= end) 
       { 
        yield return start--; 
       } 

       break; 

      case 1: 
       while (start <= end) 
       { 
        yield return start++; 
       } 

       break; 

      default: 
       yield break; 
     } 
    } 
Các vấn đề liên quan