C cercare elementi in una collezione in base a valori di una collezion...

mercoledì 04 luglio 2012 - 17.25

cicciottino Profilo | Newbie

ho bisogno di filtrare elementi di una List<T> sulla base di valri presenti in una collezione figlia della mi lista

List<Aziende> AllTree = LoadAziende() allTree = allTree.FindAll(x => x.Risorse.ToList().FindAll(r => r.Matricola == "xxx"));

la classe "Aziende" ha una collezione figlia di tipo Icollection<Risorse>

ho bisogno di tirare fuori solo quelle aziende "Aziende" che hanno una "risorsa" figlia che contenga un determinato valore - matricola="xxx"


ottengo questo errore : Cannot implicit convert System.collection.generic.list<Risorsa> to bool

nico839 Profilo | Senior Member


ciao, non puoi fare una cosa del tipo :

var risultato = (from c in Aziende where c.Risorsa.Matricola == "xxx" select c).ToList();
Ciao.
Nicolas

http://perledinico.blogspot.com

cicciottino Profilo | Newbie

l'intellisense non mi da la proprieta "Matricola" della collezione "Risorse" su cui effettuare il filtro

nico839 Profilo | Senior Member

prova con

var risultato = (from c in Aziende.AsEnumerable() where c.Risorsa.Matricola == "xxx" select c).ToList();

nel caso, l'intellisense cosa ti propone?
Ciao.
Nicolas

http://perledinico.blogspot.com

InsettoScoppiettato Profilo | Junior Member

Prova questo, che se funziona non è molto leggibile e quindi lo farei con un ciclo foreach:


Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra
mi è venuto anche:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra
ma forse questo secondo è sbagliato semplicemente perchè manca ancora di un predicato per la prima query.
Non posso prvarli perchè ricostruire un esempio e i dati su cui testarli è veramente troppo oneroso. Se posti tutte le strutture magari le posso provare.


Alessandro Parma
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5