У меня есть объект PowerShell, и я хочу отфильтровать результаты.Использование C# Linq для запроса вложенных объектов
public Collection<PSObject> Groups;
Я успешно достиг этого, используя linq, если мне нужно фильтровать на основе прямого элемента. Но что, если я хочу фильтровать на основе уровня 1 или 2 уровня?
Вот запросов LINQ для фильтрации прямого члена:
var groupMembershipFilter = (dynamic)CsQ.Groups.Where(x => x.Members["AgentsByUri"].Value != null).ToList();
Однако мне нужно развернуть другой уровень. В PowerShell это будет легко:
$x.AgentsByUri.AbsoluteUri
Я пробовал все виды, но не могу понять, как сделать эту работу. Так что вы можете лучше понять структуру объекта здесь несколько снимков экрана:
Из приведенных выше снимков экрана вы можете увидеть «AgentsByUri» является коллекция. Внутри этой коллекции я хочу проверить, содержит ли свойство «AbsoluteUri» определенное строковое значение.
Другая вещь, которую я не понимаю, - это то, почему я должен использовать «Участников» и не могу просто использовать «BaseObject» - эта структура выглядит гораздо более похожей на PowerShell и, если возможно, будет моим предпочтением, поскольку это лучше переводит мой мозг PowerShell ,
Извините за мою терминологию, я достаточно новичок в C#! Надеюсь, это имеет смысл :)
Любая помощь или руководство будут высоко оценены.
Приветствия для этого, не показалось, что нравится Любой бит. Я немного продвинулся и задал здесь новый вопрос, так как я думаю, что это может быть чересчур запутанным - http://stackoverflow.com/questions/32511346/using-linq-to-query-nested-objects –