Лучше ли вызывать ToList () или ToArray () в запросах LINQ?
Я часто сталкиваюсь со случаем, когда хочу проверить запрос именно там, где я его объявляю. Обычно это потому, что мне нужно повторить его несколько разand это дорого вычислять. Например:
string raw = "...";
var lines = (from l in raw.Split('\n')
let ll = l.Trim()
where !string.IsNullOrEmpty(ll)
select ll).ToList();
Это отлично работает.But если я не собираюсь изменять результат, я мог бы такжеToArray()
вместоToList()
.
Интересно однакоToArray()
реализуется путем первого вызоваToList()
и, следовательно, менее эффективно использовать память, чем просто вызовToList()
.
Я сумасшедший? Должен ли я просто позвонитьToArray()
- безопасно и надежно знать, что память не будет распределяться дважды?