c# - Lambda 表达式 : == vs. .Equals()

标签 c# lambda

这是一个纯粹的学术问题,但在 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/

相关文章:

c# - 在 C# 中搜索字符串的子字符串列表

c++ - []<typename>(){} 是有效的 lambda 定义吗?

c# - 无法将匿名类型#1 隐式转换为对象

c# - 阅读 IMDB 电影列表的最有效方式

c# - 如何序列化表单字段并将其发送到服务器,jquery?

C#,为什么我不能将域用户添加到本地组?

java - 使用 Java Stream API 从给定用户列表中计算最常见姓氏的方法

entity-framework - 如何包含检查属性及其值的 And() 表达式

c# - 如何将字节数组(SQL 服务器时间戳)转换为日期时间(C#)?

c# - 使用 LINQ 对列值进行排序,忽略空字符串值