Das Problem ist, dass Sie List<T>.Reverse()
sind ruft die void
zurückgibt.
können Sie entweder tun:
List<string> names = "Tom,Scott,Bob".Split(',').ToList<string>();
names.Reverse();
oder:
IList<string> names = "Tom,Scott,Bob".Split(',').Reverse().ToList<string>();
Letzteres ist teurer, als eine willkürliche IEnumerable<T>
Umkehr beinhaltet alle Daten zu puffern und was dann alles - während List<T>
kann alle Umkehrungen "in-place" machen. (Der Unterschied hier ist, dass es die Enumerable.Reverse<T>()
Extension-Methode ruft anstelle der List<T>.Reverse()
Instanz-Methode.)
Effizientere noch, könnten Sie verwenden:
string[] namesArray = "Tom,Scott,Bob".Split(',');
List<string> namesList = new List<string>(namesArray.Length);
namesList.AddRange(namesArray);
namesList.Reverse();
Dies vermeidet Puffer einer ungeeigneten Größe zu schaffen - auf Kosten von vier Aussagen, wo man es tut ... Wie immer die Lesbarkeit im realen Anwendungsfall gegenüber der Leistung abwägen.
Skeet ist ein Biest! – flesh
gut ausgearbeitet, ich schätze wirklich! –