12

我有一个结果列表列表,其中包含列表。我有另一个列表,其中仅包含列表。我想使用 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 是另一个包含技能列表的对象。

4

1 回答 1

21

如果 SkillId 是一个变量并假设 SkillsList 包含一个名为 Id 的属性。然后以下内容将帮助您获取具有指定技能 ID 的任何数据。

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));
于 2013-08-14T04:37:12.747 回答