> For the complete documentation index, see [llms.txt](https://shuras-organization.gitbook.io/csharpunitystyleguide/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://shuras-organization.gitbook.io/csharpunitystyleguide/linq.md).

# LINQ

Если код выполняется часто то желательно отказаться от излишнего использования LINQ в пользу более оптимизированных методов.

Например, при необходимости частой сортировки данных целесообразнее использовать <mark style="color:blue;">**`Array.Sort`**</mark> вместо <mark style="color:blue;">**`OrderBy`**</mark>.

Хорошей практикой использовать LINQ-запросы на инициализации типа за время до начала геймплея, особенно, если коллекции к которым применяются запросы вы не можете однозначно назвать "маленькими".

> Это правило обосновано тем, что каждый вызов метода-расширения LINQ создает дополнительные объекты, что может привести к аллокации лишней памяти. Особое внимание следует уделять использованию методов, таких как .ToList или .ToDictionary, которые явно указывают на выделение дополнительной памяти. Избегание излишних аллокаций особенно важно в местах, которые могут стать "узким горлышком" всего проекта.
