Search code examples
c#dynamics-crmmicrosoft-dynamicscontains

What is difference: AttributeCollection.Contains(TKey) vs AttributeCollection.ContainsKey(TKey)?


What is difference for AttributeCollection.Contains(TKey) and AttributeCollection.ContainsKey(TKey)? I doesn't see any difference in the official manual.

var stuff = new Entity("abc_stuff");
stuff.Attributes.Add(new KeyValuePair<string, object>(
    "kvp", 12));
stuff.Attributes.Add("txt", "foo");
stuff.Attributes.Add("null", null);

var containsKvp = stuff.Attributes.Contains("kvp"); // true
var containsKvpKey = stuff.Attributes.ContainsKey("kvp"); // true

var containsTxt = stuff.Attributes.Contains("txt"); // true
var containsTxtKey = stuff.Attributes.ContainsKey("txt"); // true

var containsNull = stuff.Attributes.Contains("null"); // true
var containsNullKey = stuff.Attributes.ContainsKey("null"); // true

var containsFoo = stuff.Attributes.Contains("foo"); // false
var containsFooKey = stuff.Attributes.ContainsKey("foo"); // false

Solution

  • The method Contains calls the ContainsKey method internally. You can see the generated IL code.