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?