访问组中的一个项目

本文关键字:一个 项目 访问 | 更新日期: 2023-09-27 18:30:07

我有一个LINQ到SQL查询,它正在对项目进行分组,如下所示:

var myGroup = (from ps in this.Context.PersonSpecialties
    where personKeys.Contains(ps.Person_K)
    group ps.SpecialtyName by ps.Person_K).ToList();

我如何检查这个结果中是否有密钥为"A12345"的内容?如果有,就去拿它的物品清单。

访问组中的一个项目

我假设您正在寻找一种用多个键查询组的方法,因为否则直接筛选这一个键会容易得多(而不是构建一个组,然后丢弃除所需单个项之外的所有项)。

在这种情况下,您最好对组调用ToDictionary,然后按键查询字典中的列表,如下所示:

var groupByKey = (from ps in this.Context.PersonSpecialties
    where personKeys.Contains(ps.Person_K)
    group ps.SpecialtyName by ps.Person_K).ToDictionary(g => g.Key);
// Now you can get your lists with a simple look-up
IEnumerable<PersonSpeciality> listForA12345 = groupByKey["A12345"];
IEnumerable<PersonSpeciality> listForB23456 = groupByKey["B23456"];
...
IEnumerable<PersonSpeciality> listForA12345 = groupByKey["Z22232"];