2012-05-05 38 views
11

Giả sử tôi có các biến số nguyên x và y, và tôi muốn một mảng được điền với các giá trị x qua y. Có cách nào tốt đẹp để làm điều này nội tuyến, bằng cách sử dụng C#?Tạo một mảng được điền với một dãy các giá trị x qua y

Tôi biết tôi có thể đạt được điều này sử dụng một phương pháp khuyến nông:

public static int[] ExpandToArray(this int x, int y) 
{ 
    var arr = int[y - x + 1]; 
    for (int i = x; i <= y; i++) 
    { 
     arr[i-x] = i; 
    } 
    return arr; 
} 

Và sau đó sử dụng nó để viết:

x.ExpandToArray(y); 

Có cách nào built-in (mà không cần tạo một phương pháp mở rộng) trong .NET để viết một cái gì đó như x.ExpandToArray(y)?

+1

Tại sao sử dụng danh sách khi số lượng mục được cố định và đã biết? – harold

+0

@ chia sẻ điểm tốt ... – McGarnagle

+0

@harold mặc dù sau khi viết lại nó, nhìn vào sự lộn xộn của các biến cho tôi một nhức đầu. – McGarnagle

Trả lời

25
int[] numbers = Enumerable.Range(x, y - x + 1).ToArray(); 

Thông số # 1 là giá trị bắt đầu. Thông số số 2 được tính.

+0

Tuyệt vời! Cảm ơn. Tôi cảm thấy có thứ gì đó như thế này đã tồn tại. – McGarnagle

+0

Nếu tham số 2 được tính, thì không được là 'y - x + 1'. Nếu bạn muốn các giá trị từ 4 đến 4, thì số đếm phải là 1, không phải là 0. –

+0

@Sahuagin Cảm ơn vì điều đó, bạn nói đúng. Đã sửa. – SimpleVar

Các vấn đề liên quan