2012-05-05 5 views
11

Nehmen wir an, ich habe Integer-Variablen x und y, und ich möchte ein Array mit Werten von x bis y gefüllt. Gibt es eine nette Möglichkeit, dies inline mit C# zu machen?Erstellen Sie ein Array mit einem Bereich von Werten von x bis y

Ich weiß, dass ich dies mit einem Erweiterungsmethode erreichen kann:

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

und dann verwenden, zu schreiben:

x.ExpandToArray(y); 

Gibt es eine integrierte Möglichkeit (ohne eine Erweiterungsmethode zu schaffen) in .NET etwas wie x.ExpandToArray(y) schreiben?

+1

Warum eine Liste verwenden, wenn die Anzahl der Elemente fest und bekannt ist? – harold

+0

@harold guter Punkt ... – McGarnagle

+0

@harold, obwohl nach dem Umschreiben, gibt mir das Durcheinander der Variablen Kopfschmerzen. – McGarnagle

Antwort

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

Parameter # 1 ist Startwert. Parameter # 2 zählt.

+0

Schön! Vielen Dank. Ich war mir sicher, dass so etwas existieren musste. – McGarnagle

+0

Wenn Param 2 zählt, sollte es nicht "y - x + 1" sein. Wenn Sie Werte von 4 bis 4 wollten, dann sollte count 1 sein, nicht null. –

+0

@Sahuagin Danke, du hast Recht. Fest. – SimpleVar

Verwandte Themen