Здравствуйте, Sinclair, Вы писали:
var set2 = (from item in set1 where (item < mx && item > mn) select item).ToArray(); // принудим материализацию, чтобы избежать той же проблемы.
А разве ToArray в общем случае (когда не известно число элементов) не дороже вызова ToList?
ARI ARI ARI... Arrivederci!
Здравствуйте, Somescout, Вы писали:
S>А разве ToArray в общем случае (когда не известно число элементов) не дороже вызова ToList?
В общем случае нет — внутри ToArray примерно тот же алгоритм выделения буферов, что и внутри List. Конечно, если внутренний буфер не совпадает размерами с результатом, в ToArray будет одно лишнее копирование, но в List мы потеряем на доступе к элементам из-за дополнительной проверки диапазонов.
На практике в 99.99% случаев заметной разницы не будет.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Здравствуйте, Somescout, Вы писали:
S>Здравствуйте, Sinclair, Вы писали:
S>S>var set2 = (from item in set1 where (item < mx && item > mn) select item).ToArray(); // принудим материализацию, чтобы избежать той же проблемы.
S>
S>А разве ToArray в общем случае (когда не известно число элементов) не дороже вызова ToList?
Ну мы же не о производительности тут.