LINQ-запрос для элементов словаря в C # - PullRequest
0 голосов
/ 01 августа 2011

У меня есть словарь, в котором одним из членов DetailObject является список. Я пытаюсь написать запрос к словарю, чтобы вернуть все элементы, в которых подробный объект имеет определенное значение для одного из полей в своей подструктуре. Например:

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>();

Каждая подструктура может появляться внутри нуля или более экземпляров DetailObject.

Я бы, например, хотел бы запросить «dict» для каждого подробного объекта, чья коллекция «subs» содержит элемент SubStructure с идентификатором 3.

Ответы [ 2 ]

6 голосов
/ 01 августа 2011
var result = dict1.Where(kvp => kvp.Value.subs.Any(ss => ss.Id == 3));
6 голосов
/ 01 августа 2011
dict.Values.Where(d => d.subs.Any(ss => ss.Id == 3))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...