c#中LINQ查询字典项

本文关键字:字典 查询 LINQ | 更新日期: 2023-09-27 18:04:12

我有一个Dictionary,其中DetailedObject的一个成员是List。我正试图编写对字典的查询,以返回DetailedObject对其子结构中的一个字段具有特定值的所有项目。例如:

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可以出现在0个或多个DetailedObject实例中。

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

c#中LINQ查询字典项

dict.Values.Where(d => d.subs.Any(ss => ss.Id == 3))
var result = dict1.Where(kvp => kvp.Value.subs.Any(ss => ss.Id == 3));