Ich benötige eine Liste von Ganzzahlen 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);
}
Dies scheint dumm zu sein, sicherlich gibt es einen eleganteren Weg, dies zu tun, so etwas wie die PHP-Range-Methode
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();
Siehe Generierungsoperatoren auf LINQ 101
quelle
Ich bin einer von vielen, hat gebloggt über einen Rubin-esque zu Extension - Methode , dass Sie schreiben können , wenn Sie C # 3.0 mit:
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 von Ganzzahlen wie folgt erstellen
List<int> = first.To(last).ToList();
oder
List<int> = 1.To(x).ToList();
quelle
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>(); }
quelle