【问题标题】:What is difference: AttributeCollection.Contains(TKey) vs AttributeCollection.ContainsKey(TKey)?有什么区别:AttributeCollection.Contains(TKey) 与 AttributeCollection.ContainsKey(TKey)?
【发布时间】:2020-06-02 07:43:44
【问题描述】:

AttributeCollection.Contains(TKey)AttributeCollection.ContainsKey(TKey) 有什么区别?我看不出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

【问题讨论】:

  • 尝试这样做:stuff.Attributes.Add("test_1", "test_2"); stuff.Attributes.ContainsKey("test_2"); 将返回 false 但 stuff.Attributes.Contains("test_2"); 将返回 true
  • @MohamadMousheimish 你错了。两者都返回false

标签: c# dynamics-crm microsoft-dynamics


【解决方案1】:

方法Contains 在内部调用ContainsKey 方法。可以看到生成的IL代码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-16
    • 1970-01-01
    • 2014-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多