LINQ к методам оптимизации объектов?

Какой LINQ к методам оптимизации Объектов Вы используете, или Вы видели в дикой природе?

При ожидании "урожая foreach" и другой оптимизации языка/компилятора для прибытия в C# в 201x я интересен в выполнении всего возможного для создания использования LINQ везде меньше боли производительности.

Один шаблон, который я видел до сих пор, создает пользовательские реализации IEnumerable для определенного combinators, таким образом, что счетное не повторно перечисляется несколько раз.

7
задан Bent Rasmussen 27 February 2010 в 16:45
поделиться

1 ответ

Тот, который я заметил несколько раз - не используйте:

if (query.Count() > 0)

... используйте вместо этого:

if (query.Any())

Таким образом, это только нужно найти первое совпадение.

РЕДАКТИРОВАТЬ: Вас также может заинтересовать сообщение в блоге , которое я недавно написал об оптимизации, которые могли быть в LINQ to Objects, но не были (или отсутствовали в .NET) 3.5).

Кроме того, если вы собираетесь выполнять много операций x.Contains (y) , а x является результатом существующего запроса (т. Е. Он еще не быть некоторой оптимизированной коллекцией), вам, вероятно, следует подумать о создании HashSet из x , чтобы избежать линейного сканирования (выполнение запроса для получения x ) результаты) на каждой итерации.

10
ответ дан 7 December 2019 в 01:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: