Так что здесь есть несколько ответов, которые будут работать. Но ваш оригинальный вопрос лучше всего рассмотреть в двух частях:
В) При сравнении двух наборов словаря значений ключей в C #: установите A и установите B, каков наилучший способ перечисления ключей, присутствующих в наборе A, но отсутствующих в наборе B, и наоборот? Используя объекты Dictionary <..., ...>, можно перечислить все значения в B и проверить набор A, используя A.ContainsKey (key) ;, ...
Если вы начинаете с двух словарей, это может быть лучшим подходом. Чтобы сделать что-либо еще, потребуется создать копию ключей из обоих наборов, что сделает большинство альтернатив более дорогостоящими.
В) ... но кажется, что должен быть лучший способ, который может включать отсортированный набор?
Да, это можно сделать с помощью отсортированного списка достаточно легко. Создайте две вставки списка, отсортированные с помощью BinarySearch, затем обойдите набор 1 во время поиска набора 2 и т.д.
Смотрите следующие операции дополнения и вычитания из SetList:
http://csharptest.net/browse/src/Library/Collections/SetList.cs#234