【发布时间】:2011-11-14 23:11:42
【问题描述】:
考虑以下两个相似的代码示例。
一个where 子句。
bool validFactory
= fields
.Where(
fields => field.FieldType == typeof( DependencyPropertyFactory<T> ) &&
field.IsStatic )
.Any();
两个where 子句。
bool validFactory
= fields
.Where( field => field.FieldType == typeof( DependencyPropertyFactory<T> ) )
.Where( field => field.IsStatic )
.Any();
我更喜欢第二个,因为我发现它更具可读性,并且导致的格式问题更少,尤其是在使用自动格式时。将 cmets 放在单独的条件旁边(甚至上面)以阐明意图时也更清楚。
我的直觉说第二个代码示例效率会降低。我当然可以自己编写一个简单的测试(如果没有人知道答案,我也会这样做)。现在我认为这是完美的食物。 ;p
- 一个比另一个更有效吗?
- 编译器是否足够聪明,可以对此进行优化?
【问题讨论】:
-
似乎是重复的,但由于我也不知道如何搜索较早的问题...
标签: c# .net linq compilation