LINQ 扩展方法查询中括号的作用

发布于 2024-10-12 22:54:53 字数 458 浏览 5 评论 0原文

如果我在 queryableOrderByDescending(...) 周围(以及在 Take(1) 之前)保留括号或将其删除,有什么区别吗? ?为什么或为什么不呢?

public static IQueryable<IEffectiveDated> GetCurrent(this IQueryable<IEffectiveDated> queryable, DateTime asOfDate) 
{           
    return (queryable
        .Where(e => e.EffectiveDate <= asOfDate)
        .OrderByDescending(e => e.EffectiveDate))
        .Take(1);       
}

Is there any difference if I leave the parentheses around queryable and OrderByDescending(...) (and before Take(1)) or remove them? Why or why not?

public static IQueryable<IEffectiveDated> GetCurrent(this IQueryable<IEffectiveDated> queryable, DateTime asOfDate) 
{           
    return (queryable
        .Where(e => e.EffectiveDate <= asOfDate)
        .OrderByDescending(e => e.EffectiveDate))
        .Take(1);       
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

冷夜 2024-10-19 22:54:53

在这种情况下没有什么区别。换句话说:

return (queryable
    .Where(e => e.EffectiveDate <= asOfDate)
    .OrderByDescending(e => e.EffectiveDate))
    .Take(1);

与: 相同,

return queryable
    .Where(e => e.EffectiveDate <= asOfDate)
    .OrderByDescending(e => e.EffectiveDate)
    .Take(1);

后者可能更干净并且更好地显示了 Linq 链接。

There's no difference in this case. In other words:

return (queryable
    .Where(e => e.EffectiveDate <= asOfDate)
    .OrderByDescending(e => e.EffectiveDate))
    .Take(1);

is identical to:

return queryable
    .Where(e => e.EffectiveDate <= asOfDate)
    .OrderByDescending(e => e.EffectiveDate)
    .Take(1);

The later is probably cleaner and better shows the Linq chaining.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文