В SQL всегда следует стремиться к операциям на основе множеств, а не к итерациям (т. Е. Зацикливанию). В .NET мы часто зацикливаем коллекции и объекты. Есть ли в .NET команды, которые разрешают обработку на основе множеств или все основано на итерациях? (Мне вспоминается, как DataAdapter.Fill
вызывает DataReader
, который перебирает каждую запись в наборе результатов). Я не очень знаком с LINQ
, но думаю, что его реализация просто маскирует итерации, происходящие за кулисами.
UPDATE:
Чтобы уточнить: Я не претендую на то, чтобы быть здесь каким-то гением, и я не буду вторым догадываться о каких-либо блестящих людях, которые делают мою жизнь программирующейся лучше. Команды, которые выполняют основанные на множестве операции, как SQL делает, когда вы UPDATE
, в отличие от foreach(var item in obj) { ... }
, который явно перебирает объект. Разработчики SQL наказываются на каждом шагу, если они когда-либо используют цикл, но в .NET мы используем их постоянно. Будучи разработчиком, который интенсивно работает как в SQL, так и в .NET, я спрашиваю, есть ли в .NET какие-либо альтернативы, которые вообще исключают циклы.