LINQ - это не просто система ORM, как отметил Джонатан, она привносит множество функциональных элементов программирования в C #. И это позволяет вам делать много вещей из базы данных в обычном коде C #. Трудно объяснить, насколько невероятно мощным это может быть. Подумайте, насколько наличие надежных, хорошо разработанных общих структур данных (таких как список, стек, словарь / хэш и т. Д.), Включенных в общие структуры, улучшило состояние разработки в современных языках. Именно потому, что использование этих структур данных очень распространено, и сокращение интеллектуальных издержек при их использовании является огромным преимуществом. LINQ не делает ничего, что вы не можете сделать сами, но делает многие операции намного проще и проще.
Рассмотрим проверенный временем пример удаления дубликатов из неупорядоченного списка. В языке более низкого уровня, таком как C или C ++, вам, вероятно, придется сортировать список и поддерживать два индекса в списке, когда вы удаляете дубликаты. В языке с хешами (Java, C #, Javascript, Perl и т. Д.) Вы можете создать хеш, где ключи являются уникальными значениями, а затем извлечь ключи в новый список. С LINQ вы можете просто сделать это:
int[] data = { 0, 1, 3, 3, 7, 8, 0, 9, 2, 1 };
var uniqueData = data.GroupBy(i => i).Select(g => g.Key);