626 Stimmen

Ist es besser, ToList() oder ToArray() in LINQ-Abfragen aufzurufen?

Ich stoße oft auf den Fall, dass ich eine Abfrage genau dort auswerten möchte, wo ich sie deklariere. Dies ist in der Regel der Fall, weil ich die Abfrage mehrmals durchlaufen muss y es ist teuer zu berechnen. Zum Beispiel:

string raw = "...";
var lines = (from l in raw.Split('\n')
             let ll = l.Trim()
             where !string.IsNullOrEmpty(ll)
             select ll).ToList();

Das funktioniert gut. Aber wenn ich das Ergebnis nicht ändern will, kann ich auch ToArray() anstelle von ToList() .

Ich frage mich jedoch, ob ToArray() wird durch den ersten Aufruf von ToList() und ist daher weniger speichereffizient als der einfache Aufruf von ToList() .

Bin ich verrückt? Sollte ich einfach anrufen ToArray() - in der Gewissheit, dass der Speicher nicht doppelt belegt wird?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X