Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
.NET Framework
Linq su collezione di dati in memoria e join multiple
venerdì 31 luglio 2009 - 16.27
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
advapi
Profilo
| Newbie
10
messaggi | Data Invio:
ven 31 lug 2009 - 16:27
Ciao a tutti,
ho un problema con una query linq, cercherò di spiegarvi il mio problema spigandovi la situazione,
ho un combobox editabile dove viene immesso il nome di un cliente, il testo può contere spazi.
Digitando lettere viene filtrata la collezione e viene raffinata la ricerca, io per effettuare questo spezzo la stringa con una split su ' ' e poi ricerco per le singole parole creando una lista di liste, ecco il codice
string[] splitted = this.text.Split(' ');
List<List<Cliente>> tmpList = new List<List<Cliente>>(splitted.Length);
for (int i = 0; i < splitted.Length; i++)
{
tmpList.Add(m_ListaClienti.Where(o1 => o1.Intestatario.Contains(splitted[i])).ToList());
}
if (splitted.Length > 1)
{
var a = tmpList[0];
var b = tmpList[1];
var res = from o1
in a
join o2
in b on new { o1.Intestatario } equals new { o2.Intestatario } into result
from o3 in result
select o3;
tmp = res.Take(maxResult).ToList();
return tmp;
}
Il mio problema è di fare le join sul numero di oggetti presenti nella prima lista, in questo caso se io cerco Rossi Marco o Marco Rossi me lo trova, ma se io cercassi Marco Fabio Rossi, mi perderei la search su Rossi, e visto che non posso sapere il numero massimo di parole immesse, mi trovo abbastanza in difficoltà... qualcuno di voi potrebbe aiutarmi? Ho pensato anche di fare join incrementali a 2 a due, tipo se ne ho 3, faccio fra 1 e 2 e poi fra res(1 e 2) e 3.... che ne dite? ciao grazie
Riddler
Profilo
| Newbie
5
messaggi | Data Invio:
sab 1 ago 2009 - 23:23
La butto lì
Potresti utilizzare le RegEx così da poter evidenziare e sfruttare la possibilità di o un nome e cognome oppure uno o più nomi e cognome oppure ancora uno o più nomi ed uno o più cognomi.
Non ho ancora utilizzato linq, ma se si potesse includere le RegEx credo che tu possa risolvere...
spero di aver fornito una dritta ...
saluti
--
Riddler ?
Torna su
Stanze Forum
Elenco Threads
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 !