Ich habe eine sortierte Sammlung von Objekten (es kann entweder SortedList oder SortedDictionary sein, ich werde es hauptsächlich zum Lesen verwenden, damit die Leistung nicht so wichtig ist). Wie kann ich den i-ten Wert erhalten?
Also z.B. wenn ich die Nummern 1, 2, 3, 4, 5 in der Sammlung habe und ich möchte den Median (also 3 in diesem Beispiel), wie kann ich es tun?
Versuchen Sie etwas wie folgt:
list.Values [list.Count / 2];
Beachten Sie, dass ein echter Median die zwei Zahlen in der Mitte mittelt, wenn Count gerade ist.
Sie können Code wie
verwenden %Vor%für eine sortierte Liste.
Der einfachste Weg mit einem SortedDictorary wäre die Verwendung der ElementAt () Methode:
%Vor%Dies ist jedoch langsamer als im Listenfall.
In beiden Fällen müssen Sie Ihre Anzahl überprüfen. Wenn es ungerade ist, nehmen Sie index = (list.length-1) / 2). Wenn es gerade ist, nehmen Sie index1 = list.length / 2 UND index2 = list.length / 2 - 1 und mitteln Sie die Werte.
Sie können den Wert an einer bestimmten Position extrahieren, indem Sie die folgende Syntax verwenden:
%Vor%Wenn Sie Schlüssel oder Wert eines Elements in einem gewünschten Index extrahieren möchten:
%Vor%Tags und Links .net c# collections