gpt4 book ai didi

c# - 喜欢详细的 Linq 表达式?

转载 作者:行者123 更新时间:2023-11-30 18:51:40 26 4
gpt4 key购买 nike

我突然想到,我以一种简单但其他人可能定义为冗长的方式编写了 linq 语句;

一个简单的例子:

return _entries
.Where(x => x.Context.Equals(context))
.Where(x => x.Type == typeof (T))
.Select(x=>x.Value)
.Cast<T>()
.Single();

可以简化为:

return _entries
.Where(x => x.Context.Equals(context) && x.Type == typeof (T))
.Select(x=>(T)x.Value)
.Single();

[问题]从长远来看,哪种编码实践更好?即长(和简单)的 linq 链或具有更复杂的选择器/等的短 linq 链?

假设这些 Linq 语句将被编译器优化是正确的吗?

最佳答案

In the long run, which is the better coding practice?

我更喜欢简短。它更具可读性。 LINQ 的全部意义在于让代码读起来更像业务领域的逻辑。

It is right to assume that these Linq statements will be optimized by the compiler?

没有;优化由运行时 完成,而不是由编译器 完成。遵循您描述的模式的 LINQ-to-objects“Where”和“Select”子句在运行时被优化为单个“where-select”对象,以避免创建过多的迭代器。 (虽然正如 Jon Skeet 发现的那样,有时会产生 performance is actually degraded 的情况;就像几乎所有的“优化”一样,这并不是 100% 的胜利。不幸的是,我现在找不到 Jon 的文章。)

关于c# - 喜欢详细的 Linq 表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15162900/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com