Во-первых, используйте напечатанный Dictionary<TKey, TValue>
вместо Hashtable
, ниже приведен пример, когда значения имеют тип string
, это будет легко изменить string
на ваш пользовательский тип (я думаю, enum
или уже строка константы).
IDictionary<string, string> map1 = new Dictionary<string, string>
{
{"A", "M1-A"},
{"B", "M1-B"},
{"C", "M1-C"}
};
IDictionary<string, string> map2 = new Dictionary<string, string>
{
{"A", "M2-A"},
{"B", "M2-B"},
{"D", "M2-D"}
};
.NET 3.5 и выше : использовать LINQ Intersect()
var items = map1.Keys.Intersect(map2.Keys)
.Select(k => map1[k] + " / " + map2[k])
.ToList();
<. NET 3,5 </strong>
IList<string> results = new List<string>();
foreach (var key in map1.Keys)
{
if (map2.ContainsKey(key))
{
results.Add(map1[key] + " / " + map2[key]);
}
}
OUTPUT:
M1-A / M2-A
M1-B / M2-B