442 messaggi dal 09 marzo 2006
Ciao,
E' possibile eseguire una query su un oggetto List<xxx>?
Perchè devo utilizzare un filtro su una lista di oggetti in memoria rappresentati da un datagridview, dato che le prestazioni dovrebbero essere superiori all' interrogazione da db.
Ho sentito parlare di linq è un caso di utilizzo?
ho provato con :

var query = from ExcelData obj in m_exData
where obj.Società.Contains("Ing")
select obj;

List<ExcelData> list = query.ToList<ExcelData>();


ma List<ExcelData> list = query.ToList<ExcelData>(); mi errore:
Riferimento a un oggetto non impostato su un'istanza di oggetto
Modificato da giuseppe500 il 21 giugno 2009 17.13 -
442 messaggi dal 09 marzo 2006
pardon , ho cambiato la query per selezionare solo valori non null e poi eseguire l'operazione contains.
Il problema è che ho 3 campi con valori che possono essere null e devo eseguire condizionalmente l'operazione contains solo se il campo non è null.
perchè ad es ho :
cognome, nome , società
questa è la query
var query = from ExcelData obj in m_exData
where obj.Società != null && obj.Società.ToLower().Contains(" "+strSoc+" " )
&& (obj.Nome != null && obj.Nome.Contains(strNome))
&& (obj.Cognome != null && obj.Cognome.Contains(strCognome))
select obj;

e vorrei eseguire la query ogni carattere inserito nelle 3 textbox che rappresentano le variabili.
solo che se ad es ho un campo null in uno dei tre campi e ho una concatenazione and non viene trovato niente dalla query mentre vorrei che se il campo è null fosse ignorato dalla catena and in modo da lasciare la ricerca alle altre 2 var , poi all ultima e cosi via.
Grazie
Modificato da giuseppe500 il 21 giugno 2009 17.58 -
45 messaggi dal 16 ottobre 2007
Beh la query che chiedi credo sia questa:

var query = from ExcelData obj in m_exData
where (obj.Società != null && obj.Società.ToLower().Contains(" "+strSoc+" " ))
|| (obj.Nome != null && obj.Nome.Contains(strNome))
|| (obj.Cognome != null && obj.Cognome.Contains(strCognome))
select obj

Dimmi se ho capito giusto:
Se una delle variabili è nulla deve essere ignorata ed il filtro applicato sulle altre due giusto?

ciao,

Luca

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.