我有一个结果列表列表,其中包含List里面的列表。我有另一个列表,其中只包含List。我想使用数据中的linq查询进行过滤,它应返回包含技能ID的所有数据从第二个清单。
var list = this._viewModel.Data.Select(T => T.SkillsList);
var filtered = item.Skills.Contains(list.Where(t=>t.ToString()).ToList();
从第一个列表中包含技能列表中的小数列表; item.Skills包含字段为技能和代码的列表。 item是另一个包含技能列表的对象。
答案 0 :(得分:19)
如果skillId是一个变量,并假设SkillsList包含一个名为Id的属性。然后,以下内容可以帮助您获取具有指定skillId的任何数据。
var list = this._viewModel.Data.Where(t=>t.SkillsList.Any(s=>s.Id == skillId));
如果Skillslist只是一个整数数组,则以下内容可以正常工作。
var list = this._viewModel.Data.Where(t=>t.SkillsList.Any(s=> s == skillId));
现在,如果您正在检查列表,则以下内容将起作用。
var list = this._viewModel.Data.Where(t=>t.SkillsList.Any(s=> skillsList.contains(s));