Написание кода может быть очень захватывающим, но также может быть и очень разочаровывающим, если ваш код основан на вложенных циклах. Итерации по-прежнему являются одной из самых важных частей кодирования. Итак, как мы можем избежать использования уродливых вложенных циклов в нашем коде?

LINQ — встроенный в язык запрос

Разработчики языков Microsoft предоставили способ выражать запросы непосредственно на своих языках. LINQ расширяет язык, добавляя выражения запросов, которые аналогичны SQL-запросам.

Синтаксис LINQ обычно менее эффективен, чем цикл foreach. Полезно знать о любых компромиссах производительности, которые могут возникнуть при использовании LINQ. С другой стороны, это самый эффективный способ улучшить читаемость вашего кода.

Преимущества использования LINQ

  • Разработчики могут получить доступ к новым технологиям, не зная о них много
  • LINQ предлагает объектно-ориентированный, интегрированный в язык способ запроса данных независимо от того, откуда они были получены. Таким образом, с помощью LINQ мы можем запрашивать базу данных, XML, а также коллекции.
  • создавать полные приложения с меньшим количеством кода
  • разработать приложение за меньшее время и с меньшим количеством ошибок
  • комбинировать источники данных, не прибегая к странным приемам программирования
  • Позвольте новым разработчикам работать быстрее
  • Проверка синтаксиса во время компиляции
  • позволяет запрашивать коллекции, такие как массивы, перечисляемые классы и т. д., на родном языке вашего приложения, таком как VB или C#, почти так же, как вы запрашиваете базу данных с помощью SQL

«Возможно, самый важный аспект LINQ, который я бы хотел, чтобы другие разработчики API взяли на вооружение, — это то, как сложные запросы строятся из множества маленьких строительных блоков. Что делает его особенно элегантным, так это то, что результат применения каждого строительного блока не изменяется ни при каких других действиях, которые вы делаете с ним впоследствии.

LINQ, конечно, не обеспечивает неизменяемость — вы можете начать с изменяемого списка и изменить его содержимое в любое время, например, или изменить свойства одного из объектов, на которые есть ссылки в нем, или передать в делегате с побочными эффектами, но сам LINQ не создаст побочных эффектов». (Скит, 03.2018)

Методы:

Циклы с использованием индекса

Одна из самых распространенных ошибок при использовании LINQ заключается в том, что разработчики считают невозможным заменить цикл for, который вызывает методы на основе его индекса. Вот несколько примеров, которые показывают, как это сделать.

Вложенные циклы с использованием Linq

Первый пример занимает около 17 строк. Второй всего 3.

Давайте представим, что нам нужно перемещаться по листу Excel с помощью EPPlus. Использование циклов для доступа к каждой отдельной ячейке всегда может быть очень дорогим. Здесь часто используются вложенные циклы for, которые занимают много места и усложняют чтение. Давайте посмотрим, как мы можем избежать вложенных циклов:

Заключение

в целом преимущества Linq перевешивают недостатки.
Потеря скорости по сравнению с чистой читабельностью, более быстрой записью и применением языка на основе SQL предполагает, что использование Linq-выражений дает разработчику значительные преимущества.

Дополнительные примеры:

Здесь вы найдете несколько других примеров:



Пожалуйста, ознакомьтесь с другими моими статьями:

Источники: