【发布时间】:2010-02-16 14:35:40
【问题描述】:
这是一个纯粹的学术问题,但是在 lambda 表达式中使用 == 和 .Equals 和首选哪个有什么区别?
代码示例:
int categoryId = -1;
listOfCategories.FindAll(o => o.CategoryId == categoryId);
或
int categoryId = -1;
listOfCategories.FindAll(o => o.CategoryId.Equals(categoryId));
【问题讨论】:
-
为什么“== vs. Equals in Lambda 表达式”不同于“== vs. Equals in general”?
-
@Heinzi,对于作为表达式树的 lambda(即,不是
x => {}的语法,它是匿名委托的快捷方式),可能会有所不同,具体取决于谁(哪个提供者)评估表达式树。 -
@FrustratedWithFormsDesigner - CategoryId 是一个整数,我也会用这个信息更新问题。