访问组中的一个项目

时间:2016-01-13 19:09:10

标签: c# linq

我有一个LINQ to SQL查询,它将项目分组如下:

public class MyClass {
    public List<CustomerObject> MakeListWithIdsNames(int[] ids, string[] names) {
        return new List<CustomerObject> { new CustomerObject(ids, names) };
    }
}

|my class|
|make list with ids|1,2,3,4|names|a,b,c,d|
|id|name|
|1,2,3,4|a,b,c,d|

如何检查此结果中的键是否为“A12345”? 如果有的话,去抓住它的物品清单。

1 个答案:

答案 0 :(得分:2)

我假设您正在寻找一种方法来查询具有多个键的组,因为否则直接过滤该一个键会更容易(而不是构建一个组然后丢弃除该单个项目之外的所有内容)你需要的。)

在这种情况下,您最好在组上调用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"];