C # LINQ (Language-Integrated Query) - король всего, когда дело доходит до работы с базой данных на C # или с IEnumerable, вероятно, наиболее часто используемая функция, используемая в C #, или, по крайней мере, я так думаю, потому что я пишу операторы LINQ / выражений в значительной степени на ежедневной основе. [Вероятно, зависит от предпочтений команды / человека]
Прежде чем мы начнем рассматривать код, ознакомьтесь с некоторыми функциями, относящимися к LINQ:
Вышеупомянутое играет небольшую роль, чтобы помочь с операторами / выражениями LINQ.
Выражения запроса
Основываясь на приведенном выше коде, выражения запроса выглядят как select, что довольно круто. В приведенном выше выражении он возвращает список слов, в которых длина слов больше 4, а затем результат слов в верхнем регистре.
Лямбда-выражения
Этот же код делает то же самое, но с использованием лямбда-выражений.
Когда использовать запрос или лямбда?
Если честно, это действительно зависит от ситуации. На самом деле у меня нет хорошего объяснения, какой из них выбрать, но я выбираю, исходя из сложности ситуации. Например, я, вероятно, использовал бы выражение запроса, когда нам нужно выполнять соединения между наборами данных, в то время как я, вероятно, использовал бы лямбда-выражения, когда я хочу сгруппировать по определенным свойствам.
В приведенном выше случае, когда я хочу объединиться между задачами Person и Person, чтобы получить список людей с их задачей, я, вероятно, выберу выражение запроса и выведу либо анонимный тип, либо какой-либо тип класса.
В случаях, когда мне нужно манипулировать объектом и начать группировку наборов данных, я, вероятно, выбрал бы лямбда-выражение, приведенный выше код превращает список PersonGroup в новый список, в котором он группирует людей по заданному значению группы.
Надеюсь, это было для вас проницательным! Пожалуйста, поделись своими мыслями.
Примечание. Я все еще учусь, и письмо на среднем уровне помогает мне анализировать мелочи, чтобы лучше понимать. Открыт для исправлений и / или комментариев, если я что-то написал неправильно. Спасибо!