CQ中字典项的LINQ查询

Rob*_*ter 0 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>();
Run Code Online (Sandbox Code Playgroud)

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

例如,我想查询每个DetailedObject的"dict",其"subs"集合包含ID为3的SubStructure项.

spe*_*der 6

dict.Values.Where(d => d.subs.Any(ss => ss.Id == 3))
Run Code Online (Sandbox Code Playgroud)


Bal*_*a R 6

var result = dict1.Where(kvp => kvp.Value.subs.Any(ss => ss.Id == 3));
Run Code Online (Sandbox Code Playgroud)