000173. C# введение в Linq
C# введение в Linq|Всем привет! Мы продолжаем изучать C# и в этом уроке мы будем знакомится в Linq.|wmysterio|wmysterio||||Это своего рода реализация языка запросов. Изначально планировалось использовать его с базами данных, но потом появилась возможность использовать запросы к любым коллекциям.
Результатом является выборка данных а команды для отбора этих данных - запросом. Синтаксис запроса может быть очень громоздким, однако ничего сложного в его написании нет. По крайней мере для меня.
Итак, преступим! Чтобы понять как это работает, напишем простой класс, например - Car:
Далее созданим случайное количество этих Car со случайными скоростями ( от 30 до 120, например ). Также, для работы с выборками нам нужно подключить пространство имём System.Linq:
Далее нужно разобраться с синтаксисом запросов. В C# обычно начинается со слова from, которое указывает место, откуда выбирать данные. Далее идёт слово in - источник этих данных. Завершающим идёт слово select, после которого описывается формат выходных данных. Это может быть как отдельный параметр, так и их набор, сгруппированным анонимным типом. Общий вид запроса имеет следующий вид:
Давайте построим запрос к нашему списку автомобилей и выберем все записи:
Остаётся вопрос - зачем это делать, если можно было просто пробежаться по циклу списка и вывести результат. Верно, так можно. Но представьте, на минуту, что нам нужно выбрать только некоторые данные, которые отвечают некому условию. Обычным способом пришлось бы создавать дополнительный список для хранения результата, что значительно увеличило наш код, особенно если мы имели дело с более крупным классом. К примеру, нам нужно выбрать все автомобили, скорость которых была бы больше 70. В запросах C# условием является ключевое слово where ( переводится как где ). Давайте напишем наш запрос заново:
При первом запуске у меня вывелся только 1 элемент из 5. После слова where ВСЕГДА должно идти выражение, которое возвращает тип bool. Запрос с условием можно описать так:
Давайте усложним условие - скажем, чтобы выборка велать относительно некого диапазона скоростей автомобиля, например от 80 до 100. Наш запрос теперь будет иметь 2 слова where:
Давайте усложним задачу. Создадим второй список случайных Car:
Пусть теперь перед нами стоит задача из двух списков выбрать элементы, скорость которых больше 60 и меньше 90:
Поскольку типы myCar1 и myCar2 одинаковы, мы воспользовались методом Concat, который соединяет в одно целое два объекта. Далее всё как обычно :) Тема достаточно интересная, но настолько и сложная. В этом уроке я объяснил некоторые основные моменты использования запросов, однако существуют очень много методов. Написаны целые книги по теме Linq. Это очередная возможность языка C#, который делает его очень гибким и современным. Спасибо за внимание.|1157|1|0||c_vvedenie_v_linq|1511722782
Last updated