Mi ritrovo a scrivere molto codice come questo per selezionare un elemento che corrisponde
var item = (from x in Items where x.Id == 123 select x).First();
C'è un modo più pulito per farlo o è così conciso come vedrò?
EDIT: Avrebbe dovuto dire "Modo più pulito usando la sintassi di linq". Ero già a conoscenza della sintassi lambda e sta iniziando a sembrare che questo sia in realtà l'unico modo. Tuttavia, ho ricevuto alcune informazioni utili, quindi grazie a tutti coloro che hanno risposto.
Single()
eSingleOrDefault()
SE so che i dati sono già univoci (ad esempio da un database che ha quel vincolo, ecc.), Poiché loSingle()
costringo a scansionare il resto della lista per trovare un possibile duplicato, ma sono io. Se a questo punto hai bisogno di rafforzare la tua unicità, usa laSingle()
famiglia, altrimenti usa laFirst()
famiglia.