У меня есть два словаря различной длины. Клавиши в обоих словарях идентичны, и значения могут не совпадать.Пересечение двух списков словаря по значениям только определенных ключей C#
var A = List<Dictionary<string, object>>();
var B = List<Dictionary<string, object>>();
Я хотел бы пересекаться А и В унижен от значений 3 ключа в в словаре объекта, содержащегося в них.
Для например:
var dict = new Dictionary<string,object>{{"W",val1},{"X",val2},{"Y",val3},{"Z",val4}}
словарь аналогичен изложенному содержится в списке А и В с различными значениями для знач1, val2, val3, val4. Я хочу пересечь A и B, если значения для ключей W, X, Y равны, но я не забочусь о значении в Z для пересечения. Есть ли способ добиться этого элегантно?
Разрабатывая с примером:
A.add(new Dictionary<string,object>{{"W",123},{"X",456},{"Y",789},{"Z",103}});
A.add(new Dictionary<string,object>{{"W",124},{"X",456},{"Y",789},{"Z",893}});
A.add(new Dictionary<string,object>{{"W",123},{"X",456},{"Y",789},{"Z",134}});
B.add(new Dictionary<string,object>{{"W",123},{"X",456},{"Y",789},{"Z",900}});
B.add(new Dictionary<string,object>{{"W",124},{"X",456},{"Y",789},{"Z",893}});
B.add(new Dictionary<string,object>{{"W",212},{"X",321},{"Y",789},{"Z",134}});
Если я A.intersect (B), я хотел бы получить следующий список назад
{"W",123},{"X",456},{"Y",789},{"Z",103}
{"W",123},{"X",456},{"Y",789},{"Z",900}
{"W",124},{"X",456},{"Y",789},{"Z",893}
Я не уверен, что понял вопрос. Можете ли вы привести пример того, какой желаемый результат будет в этом случае? – MikeTheLiar
Подождите, что? У вас есть два списка словарей? –
Что вы подразумеваете под пересечением? –