c# 请区别对待 Equals() 和 ==(使用时应区别开来)
mDCKeywordsImportantWithoutCat 只包含一条数据 (p.keyword_id.Value = 31651368766) hdKeywordId.Value = "31651368766"; bool isImportant = mDCKeywordsImportantWithoutCat.Where(p => p.keyword_id.Value == long.Parse(hdKeywordId.Value.Trim())).ToList()
.Count > 0 ? true : false; //正确(比较值类型) bool isImportant = mDCKeywordsImportantWithoutCat.Where(p => p.keyword_id.Value.Equals(long.Parse(hdKeywordId.Value.Trim()))).ToList()
.Count > 0 ? true : false; //正确(比较值类型) bool isImportant = mDCKeywordsImportantWithoutCat.Where(p => p.keyword_id.Value.Equals(hdKeywordId.Value.Trim())).ToList()
.Count > 0 ? true : false; //错误(比较引用类型,因为 p.keywordId.value 是long类型,而 hdKeywordId.value 是 string 类型,所以返回结果一直是 false) if (isImportant) { chkIsImportant.Checked = true; } else chkIsImportant.Checked = false;
对于值类型,如果对象的值相等,则相等运算符 (==) 返回 true,否则返回 false。
对于string 以外的引用类型,如果两个对象引用同一个对象,则 == 返回 true。
对于 string 类型,== 比较字符串的值。
== 操作比较的是两个变量的值是否相等。
equals()方法比较的是两个对象的内容是否一致.equals也就是比较引用类型是否是对同一个对象的引用。
对于值类型的比较,如果对象的值相等,则返回 true,否则返回 false。

浙公网安备 33010602011771号