sfd
🦊 Лисья история о LINQ: Знакомство LINQ (Language Integrated Query) - это мощный инструмент для работы с данными в C#. Представьте, что у вас есть коллекция объектов, и вам нужно их отфильтровать, отсортировать или преобразовать. LINQ делает эту работу элегантной и понятной! 🎯 Что такое LINQ: - Встроенный в C# механизм запросов к данным - Единый способ работы с разными источниками данных - Функциональный подход к обработке коллекций Простой пример: public class Item { public string Name { get; set; } public int Level { get; set; } public bool IsEquipped { get; set; } } public class InventorySystem : MonoBehaviour { private List<Item> items = new List<Item>(); // ❌ Старый подход private List<Item> GetEquippedItemsOldWay() { List<Item> equippedItems = new List<Item>(); foreach(var item in items) { if(item.IsEquipped && item.Level > 5) { equippedItems.Add(item); } } return equippedItems; } // ✨ LINQ подход private List<Item> GetEquippedItems() { return items .Where(item => item.IsEquipped && item.Level > 5) .ToList(); } // 🎮 Примеры использования LINQ private void ProcessInventory() { // Поиск предметов Item firstSword = items.FirstOrDefault(x => x.Name == "Sword"); // Подсчёт int highLevelItems = items.Count(x => x.Level > 10); // Сортировка List<Item> sortedByLevel = items .OrderByDescending(x => x.Level) .ToList(); // Группировка var itemsByLevel = items .GroupBy(x => x.Level) .ToDictionary(g => g.Key, g => g.ToList()); } } ⚠️ Важно помнить: Не используйте LINQ в часто вызываемых методах (Update, FixedUpdate) LINQ создает временные объекты - учитывайте это Сложные LINQ запросы могут быть менее читаемыми чем обычный код ✨ Где использовать LINQ: Инициализация данных Обработка сохранений Работа с конфигурациями Фильтрация данных по запросу Обработка событий 🎓 Что мы изучим подробно: Where, Select, First/FirstOrDefault OrderBy, OrderByDescending Any, All, Count GroupBy, ToDictionary Join, Union, Intersect Aggregate функции Отложенное выполнение Custom LINQ методы 💡 Советы: Начните с простых запросов Используйте IDE подсказки Разбивайте сложные запросы на части Следите за производительностью 🎮 Прежде чем мы пойдем дальше, давайте разберем странный символ => Это лямбда-выражение (lambda expression) - короткая запись маленькой функции. Выглядит страшно, но на самом деле все просто: // Старый способ написания метода private bool IsHighLevel(Item item) { return item.Level > 5; } // То же самое, но с лямбдой item => item.Level > 5 // Читается как: // "Возьми item И ВЕРНИ (=>) результат проверки item.Level > 5" 🦊 готовится к глубокому погружению в LINQ В следующих постах мы детально разберем каждый из основных методов LINQ и научимся их эффективно применять! #unity #gamedev #programming #csharp #linq #лисыпишуткод
Основы LINQ запросов в С#
Linq (language integrated query) является мощным инструментом для обработки данных в языке программирования c#. Он позволяет писать запросы к различным источникам данных, таким как массивы, списки, xml документы и базы данных, используя синтаксис, похожий на sql. Что такое linq? Linq представляет собой набор методов расширения, которые можно вызывать на коллекциях данных для выполнения операций фильтрации, сортировки, группировки и агрегации. Основное преимущество linq заключается в его удобочитаемости и интеграции с языком c#...