Frage

Ich benötige eine Liste mit ganzen Zahlen von 1 bis x, wobei x vom Benutzer festgelegt wird.Ich könnte es mit einer for-Schleife erstellen, z. B. unter der Annahme, dass x eine zuvor festgelegte Ganzzahl ist:

List<int> iList = new List<int>();
for (int i = 1; i <= x; i++)
{
    iList.Add(i);
}

Das scheint dumm zu sein, es gibt sicherlich eine elegantere Möglichkeit, dies zu tun, so etwas wie PHP-Range-Methode

War es hilfreich?

Lösung

Wenn Sie .Net 3.5 verwenden, Aufzählbarer Bereich ist das, was Sie brauchen.

Erzeugt eine Folge von integralen Zahlen innerhalb eines bestimmten Bereichs.

Andere Tipps

LINQ zur Rettung:

// Adding value to existing list
var list = new List<int>();
list.AddRange(Enumerable.Range(1, x));

// Creating new list
var list = Enumerable.Range(1, x).ToList();

Sehen Erzeugungsbetreiber An LINQ 101

Ich bin einer von vielen, die das getan haben gebloggt etwa ein Rubin-artiges Zu Erweiterungsmethode, die Sie schreiben können, wenn Sie C#3.0 verwenden:


public static class IntegerExtensions
{
    public static IEnumerable<int> To(this int first, int last)
    {
        for (int i = first; i <= last; i++)
{ yield return i; } } }

Dann können Sie Ihre Liste mit ganzen Zahlen wie folgt erstellen

List<int> = first.To(last).ToList();

oder

List<int> = 1.To(x).ToList();

Hier ist eine kurze Methode, die eine Liste von Ganzzahlen zurückgibt.

    public static List<int> MakeSequence(int startingValue, int sequenceLength)
    {
        return Enumerable.Range(startingValue, sequenceLength).ToList<int>();
    }
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top