List<T>
hat keine spezifische Methode, dies zu tun. Die Schleife ist die beste Option.
Sie können aber es effizienter, zur Laufzeit machen, indem er die Liste mit einer Anfangskapazität der Initialisierung:
var myList = new List<bool>(100);
Wenn Sie diesen Konstruktor verwenden, wird die Liste intern ein Array von 100 Elementen zuordnen. Wenn Sie den Standardkonstruktor verwenden, beginnt er mit der ersten 0 und dann mit 4 Elementen. Nachdem 4 Elemente hinzugefügt wurden, weist die Liste ein Array mit 8 Elementen zu und kopiert die 4 Elemente, die bereits hinzugefügt wurden. Dann wird es auf 16, 32, 64 und schließlich auf 128 wachsen. All diese Zuweisungen und Kopieroperationen können vermieden werden, indem der Konstruktor mit der Anfangskapazität verwendet wird.
Alternativ, wenn Sie dies in Ihrem Programm an verschiedenen Orten tun müssen, könnten Sie eine Erweiterungsmethode machen:
public static void Initialize<T>(this List<T> list, T value, int count)
{
if (list == null)
{
throw new ArgumentNullException("list");
}
if (list.Count != 0)
{
throw new InvalidOperationException("list already initialized");
}
if (list.Capacity < count)
{
list.Capacity = count;
}
for (int i = 0, i < count, i++)
{
list.Add(value);
}
}
Sie würde es so verwenden:
var myList = new List<bool>();
myList.Initialize(false, 100);
Die andere Option Sie müssen ein Array verwenden.
Das interessante an diesem speziellen Beispiel ist, dass Sie das Array nicht initialisieren müssen. Da false
der Standardwert für bool
ist, haben alle Elemente im Array automatisch den Wert false
. Wenn Ihre Liste nicht dynamisch angepasst werden muss, ist dies eine Option, die Sie berücksichtigen sollten.
Bitte, enthalten keine Informationen über eine Sprache in einer Frage-Titel, wenn es verwendet würde ohne sie keinen Sinn ergeben. Tags dienen diesem Zweck. –
@TimSchmelter Ich denke, das ist ein * bisschen * harsch, da diese Frage die Initialisierung mehrerer verschiedener ganzzahliger Werte zwischen den Werten A und B verlangt. Dies ist nur eine einfache Initialisierung einer 'Liste' mit falschen/Standardwerten. –
CodingIntrigue
Ich bin mental darauf fest, was der schnellste Weg ist, dies zu tun, obwohl ich seine vorschnelle Optimierung kenne und nicht die eigentliche Frage. – Jodrell