1
2
我更喜欢第二种。它只进行一次转换,而不是多次转换。 但是,除非这是一段性能关键的代码(不太可能,它看起来像GUI代码),否则您不会注意到有什么不同。 |
2
3
这两个都有缺点-
你在打电话
也就是说,我更喜欢第二种选择——在第一种选择中,
在这种情况下,您可能会注意到,也可能不会注意到这种差异,但在使用LINQ语句之前声明变量是一种良好的做法(IMO)。我经常看到这样的情况:人们仅仅因为在谓词中进行昂贵的计算而假设Linq速度较慢。在这种情况下,您的方法相对较快,因此可能无关紧要,但作为一种实践,遵循第二种模式是一个好习惯。 |
3
2
我能看到的唯一区别是编译器将如何生成lambda。在第二个版本中,该值被捕获而不被引用,这将在多线程环境中产生效果。 |
Imad · Linq扩展方法没有使用Object类的Equals 1 年前 |
user8512043 · 根据每个元素中的数字对列表进行排序 2 年前 |
Nick Fleetwood · 调度语法的LINQ查询 2 年前 |
Asdrubal Hernandez · Linq查询特定数组索引出错 2 年前 |
Drago · Linq通过比较Id和具有Id的对象列表来查询获取列表 2 年前 |