2012-05-05 59 views
11

假设我有整数变量x和y,并且我想要一个数组填充x到y的数组。有没有一种很好的方式来使用C#进行内联操作?创建一个数组,填充值x到y的范围

我知道我可以使用扩展方法实现这一目标:

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

,然后用它来写:

x.ExpandToArray(y); 

是否有一个内置的方式(不创建一个扩展方法)在.NET中写如x.ExpandToArray(y)

+1

为什么在项目数量固定且已知时使用列表? – harold

+0

@harold好点... – McGarnagle

+0

@harold虽然重写它后,看着变数的混乱让我头痛。 – McGarnagle

回答

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

参数#1是起始值。 参数#2是计数。

+0

不错!谢谢。我觉得肯定有这样的事情存在。 – McGarnagle

+0

如果参数2是count,那么它不应该是'y - x + 1'。如果你想从4到4的值,那么计数应该是1,而不是零。 –

+0

@Sahuagin谢谢你,你说得对。固定。 – SimpleVar