使用LINQ命令对象的不同属性

use*_*671 1 c# linq

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

这是我目前拥有的:

phoneList.OrderBy(e => branchOrder.IndexOf(e.Branch)).ThenByDescending(e => e.FirstName == null).ThenBy(e => e.FullName)
Run Code Online (Sandbox Code Playgroud)

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

我如何订购branchOrder.IndexOf(e.Branch)branchOrder.IndexOf(e.Location)

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

Eri*_*rik 7

使用null合并运算符.

phoneList.OrderBy(e => branchOrder.IndexOf(e.Location ?? e.Branch))
Run Code Online (Sandbox Code Playgroud)