Первый()
- Возвращает первый элемент последовательности.
- Выдает ошибку, когда в результате отсутствует элемент или источник равен нулю.
- Вы должны использовать его, если ожидается более одного элемента, и вы хотите только первый элемент.
FirstOrDefault ()
- Возвращает первый элемент последовательности или значение по умолчанию, если элемент не найден.
- Выдает ошибку только если источник нулевой.
- Вы должны использовать его, если ожидается более одного элемента, и вы хотите только первый элемент. Также хорошо, если результат пуст.
У нас есть таблица UserInfos, в которой есть несколько записей, как показано ниже. На основе этой таблицы ниже я создал пример ...
Как использовать First ()
var result = dc.UserInfos.First(x => x.ID == 1);
Существует только одна запись, в которой идентификатор == 1. Должен вернуть
идентификатор этой записи : 1 Имя: Маниш Фамилия: Дубей E-mail: xyz@xyz.com
var result = dc.UserInfos.First(x => x.FName == "Rahul");
Есть несколько записей, где FName == "Rahul". Первая запись должна быть возвращена.
ID: 7 Имя: Рахул Фамилия: Шарма Электронная почта: xyz1@xyz.com
var result = dc.UserInfos.First(x => x.ID ==13);
Нет записи с идентификатором == 13. Должна возникнуть ошибка.
InvalidOperationException: последовательность не содержит элементов
Как использовать FirstOrDefault ()
var result = dc.UserInfos.FirstOrDefault(x => x.ID == 1);
Существует только одна запись, в которой идентификатор == 1. Должен вернуть
идентификатор этой записи : 1 Имя: Маниш Фамилия: Дубей E-mail: xyz@xyz.com
var result = dc.UserInfos.FirstOrDefault(x => x.FName == "Rahul");
Есть несколько записей, где FName == "Rahul". Первая запись должна быть возвращена.
ID: 7 Имя: Рахул Фамилия: Шарма Электронная почта: xyz1@xyz.com
var result = dc.UserInfos.FirstOrDefault(x => x.ID ==13);
Нет записи с идентификатором == 13. Возвращаемое значение равно нулю
Надеюсь, это поможет вам понять, когда использовать First()
или FirstOrDefault()
.
.First
и.FirstOrDefault
оба принимают предикаты в качестве аргументов, поэтомуvar result = List.Where(x => x == "foo").First();
могут быть переписаны какvar result = List.First(x => x == "foo");