bool ICollection<KeyValuePair<TKey,TValue>>.Contains (KeyValuePair<TKey, TValue> pair)
{
- return ContainsKey (pair.Key);
+ TValue value;
+ if (!TryGetValue (pair.Key, out value))
+ return false;
+
+ return EqualityComparer<TValue>.Default.Equals (value, pair.Value);
}
public KeyValuePair<TKey,TValue>[] ToArray ()
} catch (ArgumentNullException ex) {
}
}
+
+ [Test]
+ public void ContainsKeyPairTest ()
+ {
+ var validKeyPair = new KeyValuePair<string, string> ("key", "validValue");
+ var wrongKeyPair = new KeyValuePair<string, string> ("key", "wrongValue");
+
+ IDictionary<string, string> dict = new ConcurrentDictionary<string, string> ();
+ dict.Add (validKeyPair);
+
+ Assert.IsTrue (dict.Contains (validKeyPair));
+ Assert.IsFalse (dict.Contains (wrongKeyPair));
+ }
}
}
#endif