Спочатку()
- Повертає перший елемент послідовності.
- Він видає помилку, коли в результаті немає жодного елемента, або джерело є нульовим.
- ви повинні використовувати його, якщо очікується більше одного елемента, і ви хочете лише перший елемент.
FirstOrDefault ()
- Повертає перший елемент послідовності або значення за замовчуванням, якщо не знайдено жодного елемента.
- Він видає помилку, лише якщо джерело є нульовим.
- ви повинні використовувати його, якщо очікується більше одного елемента, і ви хочете лише перший елемент. Також добре, якщо результат порожній.
У нас є таблиця UserInfos, в якій є деякі записи, як показано нижче. На основі цієї таблиці нижче я створив приклад ...
Як користуватися першим ()
var result = dc.UserInfos.First(x => x.ID == 1);
Є лише один запис, де ID == 1. Слід повернути цей запис
ID: 1 Ім'я: Прізвище Маніш: Дюбі Електронна пошта: xyz@xyz.com
var result = dc.UserInfos.First(x => x.FName == "Rahul");
Існує кілька записів, де FName == "Рахул". Першим записом має бути повернення.
ID: 7 Ім'я: Рахул Прізвище: Шарма Email: xyz1@xyz.com
var result = dc.UserInfos.First(x => x.ID ==13);
Немає запису з ідентифікатором == 13. Потрібна помилка.
InvalidOperationException: Послідовність не містить елементів
Як використовувати FirstOrDefault ()
var result = dc.UserInfos.FirstOrDefault(x => x.ID == 1);
Є лише один запис, де ID == 1. Слід повернути цей запис
ID: 1 Ім'я: Прізвище Маніш: Дюбі Електронна пошта: xyz@xyz.com
var result = dc.UserInfos.FirstOrDefault(x => x.FName == "Rahul");
Існує кілька записів, де FName == "Рахул". Першим записом має бути повернення.
ID: 7 Ім'я: Рахул Прізвище: Шарма Email: 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");