You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Lambda表达式中实现条件排序以精简冗余代码?

精简冗余代码的几种方法

你可以通过以下几种方式减少代码冗余:

  • 拆分排序与投影逻辑
    先根据result的值选择对应的排序方式,再统一执行Select操作,避免重复编写投影代码:

    var sortedPeople = result 
        ? people.OrderByDescending(person => person.Name) 
        : people.OrderBy(person => person.Name);
    var query = sortedPeople.Select(person => person.Name);
    
  • 直接使用条件运算符链式调用
    把条件判断嵌入链式调用中,代码更紧凑:

    var query = result 
        ? people.OrderByDescending(person => person.Name).Select(person => person.Name) 
        : people.OrderBy(person => person.Name).Select(person => person.Name);
    
  • 通过委托抽象排序逻辑
    如果后续还有更多类似的排序场景,可以用委托封装排序方法,提升代码复用性:

    Func<IEnumerable<Person>, IOrderedEnumerable<Person>> sortFunc = result 
        ? (Func<IEnumerable<Person>, IOrderedEnumerable<Person>>)(p => p.OrderByDescending(x => x.Name)) 
        : p => p.OrderBy(x => x.Name);
    
    var query = sortFunc(people).Select(person => person.Name);
    

其中第一种方法兼顾简洁性与可读性,是最常用的优化方式。

内容的提问来源于stack exchange,提问作者John

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 21:05:32