У меня есть словарь, в котором есть сглаженные пары ключ-значение и есть строковый массив. Я хотел бы получить только те элементы словаря, ключи которых при разделении должны содержать только строки, указанные во входном массиве, или любое числовое значение.
Цель состоит в том, чтобы прочитать список значений для свойства из сплющенного объекта.
Пример словаря:
Key: "Owner.0.Alias", Value: "Jo"
Key: "Owner.0.Name", Value: "John"
Key: "Owner.0.ReportsTo.Alias", Value: "Sam"
Key: "Owner.0.ReportsTo.Name", Value: "Samantha"
Key: "Owner.1.Alias", Value: "Ma"
Key: "Owner.1.Name", Value: "Mary"
Key: "Owner.1.ReportsTo.Alias", Value: "Geo"
Key: "Owner.1.ReportsTo.Name", Value: "George"
Key: "Manager.Alias", Value:"Ke"
Key: "Manager.Name", Value:"Ken"
входной массив -
string str = Owners.Alias;
var subStringArr = str.Split('.');
**Input array will have** : [0]: Owners, [1]:Alias
Я бы хотел отфильтровать все элементы словаря, имеющие ключевые слова "Владельцы" / "Псевдоним" / "Число" из приведенного выше списка.
**Expected output: **
Key: Owner.0.Alias, Value: Jo
Key: Owner.1.Alias, Value: Ma
Обратите внимание: уровень иерархии ключа словаря может быть любым длинным. Уровень не известен.
Я пробовал несколько подходов для фильтрации словаря с помощью соединения / перехвата / содержит. Проблема, с которой я столкнулся, состоит в том, что отфильтрованный словарь также будет иметь несколько дополнительных ключевых слов (например, reportsTo), а затем массив входных строк.