2013-08-14 12 views
12

Mam listę wyników listy, gdzie zawiera listę wewnątrz. Mam inną listę, gdzie zawiera listę samodzielnie.I chcesz filtrować przy użyciu kwerendy linq z danych gdzie powinien zwrócić wszystkie dane, które zawierają identyfikator umiejętności z drugiej listy.Kwerenda Linq do filtrowania id wewnątrz listy listy C#

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

z pierwszej listy zawiera listę miejsc dziesiętnych znajdujących się na liście umiejętności; item.Skills zawiera listę, w której pola są skillid i kod. przedmiot jest kolejnym obiektem, który zawiera listę umiejętności.

+0

Czego chcesz? Co? – phillip

+0

Chcę filtrować przy użyciu kwerendy linq z danych, w których powinien zwracać wszystkie dane, które zawierają identyfikator umiejętności z drugiej listy. – Sajeetharan

+0

OK, to proste ... 1 s. – phillip

Odpowiedz

18

jeśli skillId jest zmienną i zakłada, że ​​SkillsList zawiera właściwość o nazwie Id. Następnie następujące czynności będą działały na uzyskanie jakichkolwiek danych, które mają określony identyfikator skillId.

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

Jeśli Skillslist jest po prostu tablicą liczb całkowitych, to działa następująco.

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

Teraz, jeśli sprawdzasz z listą, zadziała to.

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

Nie sądzę, że to jest ... Jakieś? Mogę się mylić, ale czy możesz pokazać dane wraz z zapytaniem? – phillip

+0

Właściwie to wygląda mi dobrze ... Przepraszam – phillip

+0

To nie działa dla mnie –

Powiązane problemy