2017-07-04 2 views
0

Ich habe folgende Code-Snippet:Uninitialized Listengröße C#

public static IEnumerable<IEnumerable<TIn>> splitToEvenly<TIn>(this IList<TIn> source, int splits) 
{ 
    List<TIn[]> returnValue = new List<TIn[]>(splits); 

Aber als Run ich ein returnValue.Count von 0:

enter image description here

Warum passiert und wie kann ich das beheben es?

* PS einfach den Vorschriften zu folgen:

Es wird erwartet, dass returnValue eine Größe von 15 hat, weil es den Wert zugewiesen worden ist;

Antwort

2

Gemäß der Dokumentation, der Konstruktor List(int) wird:

Initialisiert eine neue Instanz der List-Klasse, die leer ist und die angegebene Anfangskapazität.

Die Liste hat eine Kapazität von 15, aber es ist leer (Count = 0).

Alternativ könnten Sie den List(IEnumerable) Konstruktor verwenden, um Ihre Liste mit der source Liste wie so zu initialisieren:

List<TIn[]> returnValue = new List<TIn[]>(source); 

Und dann wäre es Count = 23 (gleiche wie die source)

haben
Verwandte Themen