截至目前,我正在使用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.
使用null合并运算符.
phoneList.OrderBy(e => branchOrder.IndexOf(e.Location ?? e.Branch))
Run Code Online (Sandbox Code Playgroud)