Ricerca di oggetti in IList o IQueryable
-
20-08-2019 - |
Domanda
Devo trovare una corrispondenza di un elemento in un elenco IQueryable. Ho un elenco come segue:
IQueryable<EventItem> eventItems = new Queryable<EventItem>();
EventItem eventItem1 = new EventItem("Event 1");
EventItem eventItem2 = new EventItem("Event 2");
eventItems.Add(eventItem1);
eventItems.Add(eventItem2);
Ora voglio trovare l'evento nell'elenco passando un EventItem come eventItem2. Come posso cercare e restituire un oggetto simile EventItem found = eventItems.Select (eventItem2);
Saluti,
S
Soluzione
Linq ha fornito un metodo .Where che ti consente di trasmettere un'espressione lambda per valutare l'elemento che stai cercando.
EventItem found = eventItems.Where(e => e == eventItem2).SingleOrDefault();
found potrebbe essere nullo, quindi devi solo verificarlo per vedere se è stato trovato nella query / list
Altri suggerimenti
usando LINQ puoi fare:
EventItem found = eventItems.SingleOrDefault(item => item.Name == "Event 2");
Supponendo che il nome per EventItem sia esposto tramite una proprietà Name.
La parte item => [code]
è dove si fornisce un metodo che restituisce vero / falso, per decidere se gli articoli corrispondono o meno.