it-swarm.com.de

Einfacheres Auffüllen einer Liste mit Ganzzahlen in .NET

Mögliches Duplikat:
Auffüllen einer Liste von Ganzzahlen in .NET

Gibt es eine einfachere oder elegantere Methode zum Initialisieren einer Liste von Ganzzahlen in C # als diese?

List<int> numberList = new List<int>() { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

oder

for(int i = 1; i <= 10; i++)
{
    numberList.Add(i);
}

Es scheint einfach nicht sehr praktisch zu sein - besonders wenn die Liste eine große Anzahl von Werten enthalten soll. Wäre eine Schleife eine praktischere Lösung?

Vielen Dank,

CC

88

Sie können die Enumerable.Range() -Methode verwenden:

var numberList = Enumerable.Range(1, 10).ToList();

Der erste Parameter ist die Ganzzahl, bei der begonnen werden soll, und der zweite Parameter gibt an, wie viele aufeinanderfolgende Ganzzahlen eingeschlossen werden sollen.

181
Rion Williams

Wenn Ihre Initialisierungsliste so einfach ist wie eine fortlaufende Folge von Werten von from bis end, können Sie einfach sagen

var numbers = Enumerable.Range(from, end - from + 1)
                        .ToList();

Wenn Ihre Initialisierungsliste etwas komplizierter ist, das durch eine Zuordnung von f von int zu int definiert werden kann, können Sie sagen

var numbers = Enumerable.Range(from, end - from + 1)
                        .Select(n => f(n))
                        .ToList();

Beispielsweise:

var primes = Enumerable.Range(1, 10)
                       .Select(n => Prime(n))
                       .ToList();

würde die ersten zehn Primzahlen erzeugen, vorausgesetzt, Prime ist ein Func<int, int> das braucht ein int n und gibt die nte Primzahl zurück.

41
jason