CQ中字典项的LINQ查询

时间:2011-08-01 11:29:34

标签: c# linq dictionary

我有一个Dictionary,其中DetailedObject的成员是List。我正在尝试针对Dictionary编写一个查询,以返回DetailedObject具有其子SubStructure中某个字段的特定值的所有项。例如:

public struct SubStructure
{
  public int Id;
  public string SubSpecificFile;
}

public class DetailedObject  
{
  public int Id;
  public List<SubStructure> subs = new List<SubStructure>();
}

public Dictionary<int, DetailedObject> dict = new Dictionary<string, DetailedObject>();

每个SubStructure都可以出现在零个或多个DetailedObject实例中。

例如,我想查询每个DetailedObject的“dict”,其“subs”集合包含Id为3的子结构项。

2 个答案:

答案 0 :(得分:6)

dict.Values.Where(d => d.subs.Any(ss => ss.Id == 3))

答案 1 :(得分:6)

var result = dict1.Where(kvp => kvp.Value.subs.Any(ss => ss.Id == 3));
相关问题