我有一个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”? 如果有的话,去抓住它的物品清单。
答案 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"];