La sequenza non contiene errori di elementi, ma voglio verificare la presenza di null

Ho il seguente problema:

public Boolean Exists(String userName) { IRepository = new UserRepository(); User user = userRepository.First(u => u.Name == userName); if (user == null) return false; // Exists! return true; } 

Il problema ora è che non posso controllare l’object Utente per null. Prima di arrivare, ottengo un InvalidOperationException dice ” La sequenza non contiene elementi “.

Questo mi sembra davvero strano, soprattutto perché non voglio stabilire il stream di controllo con eccezioni (ad esempio, incapsulare in try..catch e return true / false nelle rispettive parti).

Cosa sta succedendo qui? È normale o c’è qualcosa di sbagliato nel mio espositore (suggerimento ?!)

A proposito, questo codice funziona perfettamente quando esiste l’elemento che sto cercando (l’utente viene recuperato ecc.). Funziona solo quando non c’è corrispondenza.

Utilizzare FirstOrDefault anziché First. Questo restituirà null di fronte a una collezione vuota.

 IRepository = new UserRepository(); User user = userRepository.FirstOrDefault(u => u.Name == userName); 

Prova a cambiare .First() a .FirstOrDefault() .

Utilizzare .FirstOrDefault() per impedire .FirstOrDefault()