代码之家  ›  专栏  ›  技术社区  ›  xzk

c linq-将嵌套的三元运算符重新写入helper函数

  •  0
  • xzk  · 技术社区  · 6 年前

    我的代码是根据值来排序结果。它可以工作,但有警告:将此嵌套的三元运算符提取到独立语句中

    results = resultSets.OrderBy(e => e.Status == "Status1" ? 1 :
            e.Status == "Status2" ? 2 :
            e.Status == "Status3" ? 3 :
            e.Status == "Status4" ? 4 :
            e.Status == "Status5" ? 5 : 6)
            .ThenByDescending(e => e.Times);
    

    我应该如何在helper函数中编写这个逻辑来实现相同的事情?

    2 回复  |  直到 6 年前
        1
  •  0
  •   Backs    6 年前

    Status  | OrderNo
    -----------------
    Status1 | 1
    Status2 | 2
    Status3 | 3
    Status4 | 4
    

    OrderNo

        2
  •  -1
  •   kurakura88    6 年前

    private int GetStatus(string status, int defaultStatus = 0)
    {
        int result;
        return int.TryParse(status.Replace("Status",string.Empty), out result)
           ? result
           : defaultStatus;
    }
    

    results = resultSets.OrderBy(e => GetStatus(e.Status))
        .ThenByDescending(e => e.Times);