Сохраняй — эти методы ускорят твой код в разы. LINQ — это мощь для фильтрации, сортировки и выборки данных.
🔸 Основные методы:
Where — фильтрация.
var enemies = allUnits.Where(unit => unit.IsEnemy);
Select — преобразование.
var names = players.Select(player => player.Name);
First / FirstOrDefault — первый элемент.
var target = enemies.First(e => e.Health < 10); // FirstOrDefault вернёт null, если ничего не найдено.
OrderBy / OrderByDescending — сортировка.
var sortedByScore = players.OrderByDescending(p => p.Score);
Any / All — проверка условий.
bool isAnyAlive = enemies.Any(e => e.IsAlive);
bool allReady = players.All(p => p.IsReady);
Count — количество.
int aliveCount = enemies.Count(e => e.IsAlive);
💥 Важно в Unity:
• ToArray() / ToList() — если результат нужен многократно, материализуй запрос. Иначе он будет вычисляться заново.
var list = enemies.Where(e => e.IsVisible).ToList();
• Избегай в Update — LINQ создает аллокации. В циклах это приводит к сборкам мусора (GC).
• Single() / SingleOrDefault() — строгий поиск одного элемента. Выбросит исключение, если элементов нет или их несколько.
🚀 Пример в деле:
// Найти ближайшего живого врага
var nearestEnemy = enemies
.Where(e => e.IsAlive)
.OrderBy(e => Vector3.Distance(transform.position, e.Position))
.FirstOrDefault();
📌 Сохрани шпаргалку — LINQ сэкономит часы рутины.
💬 Как часто используешь LINQ в проектах?
🔔Подпишись — еще больше шпаргалок и фишек по C# и Unity уже готовы!
👉Akrus Games | Unity