C#中用Linq查询过滤嵌套列表中的id

12

我有一个包含列表的结果列表(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 包含了技能ID和代码字段的列表。 item是另一个包含技能列表的对象。


你想要什么?什么? - phillip
我想使用 LINQ 查询来过滤数据,其中应该返回包含第二个列表中技能 ID 的所有数据。 - Sajeetharan
好的,那很容易... 1秒钟 - phillip
请发布您的数据结构,用于Data、Skill和任何数据结构SkillsList。 - nerdybeardo
1个回答

21
如果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));

我不认为那就是答案...没有吗?我可能错了,但你能把数据和查询一起展示吗? - phillip

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接