Linq,迫使项目成为第一名?

Cra*_*aig 1 linq

我有一个MyPersonObjects的List <>.该列表是我可以分配内容的人员列表.在这个列表中,我包括我自己(因为任务可以分配给我 - 通常是).

所以,我想确保自己处于榜单的首位.我知道我的personId,这是我的person对象的属性 - 所以有没有办法订购列表以确保我是第一个,然后其余的,按姓氏字母顺序(这是我的对象的另一个属性)

Joa*_*son 6

您可以按两个单独的标准对列表进行OrderBy排序,如果值相等(除了您之外的所有值均为1),则将使用主排序顺序ThenBy.

personList.OrderBy(x => x.Id == myId ? 0 : 1)
           .ThenBy(x => x.Surname);
Run Code Online (Sandbox Code Playgroud)