我有一个C#自定义对象列表,我需要按两个不同的变量进行排序,一个是 bool 值,另一个是字符串。我可以按任何一个标准进行排序,但是我在弄清楚如何组合它们时遇到了麻烦。排序应首先是所有 bool 值(CheckedIn),然后是每个值的姓氏。现在我用

result.Sort((x, y) => string.Compare(x.CheckedIn.ToString(), y.CheckedIn.ToString()));
result.Sort((x, y) => string.Compare(x.LastName, y.LastName));

但是我该如何合并才能使结果像
CheckedIn-Name
No - Aames
No - Smith
Yes - Barnes
Yes - Peters

最佳答案

result.Sort((x,y) => x.CheckedIn==y.CheckedIn ?
  string.Compare(x.LastName, y.LastName) :
  (x.CheckedIn ? -1 : 1) );

08-25 23:51