这是一个纯粹的学术问题,但在 lambda 表达式中使用 == 和 .Equals 有什么区别,哪个更好?
代码示例:
int categoryId = -1;
listOfCategories.FindAll(o => o.CategoryId == categoryId);
或
int categoryId = -1;
listOfCategories.FindAll(o => o.CategoryId.Equals(categoryId));
最佳答案
对于引用类型,== 旨在传达引用相等性——两个变量是否引用相同对象实例。
.Equals()
旨在传达值相等性——两个变量引用的两个可能不同的对象实例是否具有相同的值,对于您通过重载方法提供的“相同”的某些定义.
对于值类型,这两个含义是模糊的。
关于c# - Lambda 表达式 : == vs. .Equals(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2273600/