【问题标题】:Using LINQ to order to different properties of an object使用 LINQ 对对象的不同属性进行排序
【发布时间】:2015-02-23 20:32:25
【问题描述】:

截至目前,我正在使用 LINQ 对电话簿中的人员列表进行排序。目前,我按分支排序列表,然后按他们的全名(姓氏,名字)。我正在向名为 location 的 person 对象添加一个新属性,该属性与分支具有相同的值,因此我想将其包含到我的 LINQ 语句中,但我不确定如何。

这是我目前拥有的:

phoneList.OrderBy(e => branchOrder.IndexOf(e.Branch)).ThenByDescending(e => e.FirstName == null).ThenBy(e => e.FullName)

在 LINQ 语句中,您会看到 branchOrder.IndexOf 函数。 BranchOrder 是我定义的所有分支的列表,按数字/字母顺序排列。

如何同时通过branchOrder.IndexOf(e.Branch)branchOrder.IndexOf(e.Location) 订购?

注意:Location 可以为 NULL,但如果不是 NULL,则应使用 Location 而不是 e.Branch。

【问题讨论】:

    标签: c# linq


    【解决方案1】:

    使用空合并运算符。

    phoneList.OrderBy(e => branchOrder.IndexOf(e.Location ?? e.Branch))
    

    【讨论】:

      【解决方案2】:

      似乎一个简单的条件应该可以工作......

      branchOrder.IndexOf(e.Location == null ? e.Branch : e.Location)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-04-26
        • 1970-01-01
        • 2013-12-03
        • 1970-01-01
        • 2017-08-09
        • 1970-01-01
        • 2012-11-13
        • 1970-01-01
        相关资源
        最近更新 更多