Pierwszy()
- Zwraca pierwszy element sekwencji.
- Zgłasza błąd, gdy w wyniku nie ma elementu lub źródło ma wartość NULL.
- powinieneś go użyć, jeśli oczekuje się więcej niż jednego elementu i chcesz tylko pierwszy element.
FirstOrDefault ()
- Zwraca pierwszy element sekwencji lub wartość domyślną, jeśli nie znaleziono elementu.
- Zgłasza błąd Tylko wtedy, gdy źródło ma wartość null.
- powinieneś go użyć, jeśli oczekuje się więcej niż jednego elementu i chcesz tylko pierwszy element. Również dobrze, jeśli wynik jest pusty.
Mamy tabelę UserInfos, która zawiera niektóre rekordy, jak pokazano poniżej. Na podstawie poniższej tabeli stworzyłem przykład ...
Jak korzystać z First ()
var result = dc.UserInfos.First(x => x.ID == 1);
Jest tylko jeden rekord, w którym identyfikator == 1. Powinien zwrócić ten rekord
ID: 1 Imię: Manish Nazwisko: Dubey E-mail: xyz@xyz.com
var result = dc.UserInfos.First(x => x.FName == "Rahul");
Istnieje wiele rekordów, w których FName == „Rahul”. Pierwszy rekord powinien zostać zwrócony.
ID: 7 Imię: Rahul Nazwisko: Sharma E-mail: xyz1@xyz.com
var result = dc.UserInfos.First(x => x.ID ==13);
Brak rekordu o identyfikatorze == 13. Powinien wystąpić błąd.
InvalidOperationException: Sequence nie zawiera elementów
Jak korzystać z FirstOrDefault ()
var result = dc.UserInfos.FirstOrDefault(x => x.ID == 1);
Jest tylko jeden rekord, w którym identyfikator == 1. Powinien zwrócić ten rekord
ID: 1 Imię: Manish Nazwisko: Dubey E-mail: xyz@xyz.com
var result = dc.UserInfos.FirstOrDefault(x => x.FName == "Rahul");
Istnieje wiele rekordów, w których FName == „Rahul”. Pierwszy rekord powinien zostać zwrócony.
ID: 7 Imię: Rahul Nazwisko: Sharma E-mail: xyz1@xyz.com
var result = dc.UserInfos.FirstOrDefault(x => x.ID ==13);
Brak rekordu o identyfikatorze == 13. Zwracana wartość to null
Mam nadzieję, że pomoże ci to zrozumieć, kiedy użyć First()
lub FirstOrDefault()
.
.First
i.FirstOrDefault
oba przyjmują predykaty jako argumenty, więcvar result = List.Where(x => x == "foo").First();
można je przepisać jakovar result = List.First(x => x == "foo");