2013-08-14 7 views
12

Ho un elenco di risultati Elenco in cui contiene Elenco al suo interno. Ho un altro elenco in cui contiene solo Elenco. Voglio filtrare utilizzando una query linq dai dati dove dovrebbe restituire tutti i dati che contengono id di abilità dalla seconda lista.Query Linq per filtrare l'id all'interno di un elenco di lista C#

var list = this._viewModel.Data.Select(T => T.SkillsList); 
var filtered = item.Skills.Contains(list.Where(t=>t.ToString()).ToList(); 

dal primo elenco che contiene Elenco di decimali all'interno dell'elenco di competenze; item. I kill contengono una lista in cui i campi sono skillid e code. L'articolo è un altro oggetto che contiene la lista delle abilità.

+0

Cosa vuoi? Che cosa? – phillip

+0

Desidero filtrare utilizzando una query linq dai dati in cui deve restituire tutti i dati che contengono ID abilità dal secondo elenco. – Sajeetharan

+0

Ok, è facile ... 1 sec – phillip

risposta

18

se skillId è una variabile e presuppone che SkillsList contenga una proprietà denominata Id. Quindi quanto segue potrebbe funzionare nel procurarti qualsiasi dato che abbia l'abilità specificata.

Se Skillslist è solo un array di numeri interi, il seguente potrebbe funzionare.

var list = this._viewModel.Data.Where(t=>t.SkillsList.Any(s=> s == skillId)); 

Ora, se si sta verificando un elenco, quanto segue funzionerebbe.

var list = this._viewModel.Data.Where(t=>t.SkillsList.Any(s=> skillsList.contains(s)); 
+0

Non penso che sia ... Qualsiasi? Potrei sbagliarmi ma puoi mostrare i dati insieme alla query? – phillip

+0

In realtà mi sembra giusto ... Mi dispiace – phillip

+0

Questo non funziona per me –

Problemi correlati