Auffüllen einer Liste mit Ganzzahlen in .NET
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
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>();
}