В чем разница между single и SingleOrDefault в Linq?
В чем разница между single и SingleOrDefault в Linq?

Видео: В чем разница между single и SingleOrDefault в Linq?

Видео: В чем разница между single и SingleOrDefault в Linq?
Видео: C# LINQ - Empty() & FirstOrDefault() - Реализация и опыт использования 2024, Май
Anonim

Одинокий () - Имеется ровно 1 результат, исключение выдается, если не возвращается ни один результат или более одного результата. SingleOrDefault () - Такой же как Одинокий (), но он может обрабатывать нулевое значение. First () - есть хотя бы один результат, исключение выдается, если результат не возвращается.

Таким образом, в чем разница между методами single () и SingleOrDefault ()?

В SingleOrDefault () метод делает то же самое, что и Single () метод . Единственный разница заключается в том, что он возвращает значение по умолчанию для типа данных коллекции, если коллекция пуста, включает более одного элемента или не находит ни одного элемента или более одного элемента для указанного условия.

Кроме того, что в Linq является одиночным или стандартным? Семантическая разница: FirstOrDefault возвращает первый элемент из потенциально нескольких (или дефолт если его нет). SingleOrDefault предполагает, что есть Один товар и возвращает его (или дефолт если его нет). Множественные элементы являются нарушением контракта, создается исключение.

Соответственно, в чем разница между first и single в Linq?

Первый () выбрасывает, если не может найти первый совпадающее значение, Одинокий () вызовет ошибку, если не сможет найти значение и если во входной последовательности имеется более одного совпадающего элемента. Поэтому у них есть сестринские функции, называемые FirstOrDefault () и SingleOrDefault ().

В чем разница между методами расширения FirstOrDefault () и SingleOrDefault () в Linq?

Вступление. В SingleOrDefault () метод возвращает один конкретный элемент последовательности или значение по умолчанию, если этот элемент не найден в последовательность. В FirstOrDefault () метод возвращает первый конкретный элемент последовательности или значение по умолчанию, если этот элемент не найден в последовательность.

Рекомендуемые: