我有一个C#自定义对象列表,我需要按两个不同的变量排序,一个是布尔值,另一个是字符串.我可以按任何一个标准排序,但我无法弄清楚如何将它们组合起来.排序应首先是所有布尔值(CheckedIn),然后是每个值的最后一个名称.现在我用
result.Sort((x, y) => string.Compare(x.CheckedIn.ToString(), y.CheckedIn.ToString()));
result.Sort((x, y) => string.Compare(x.LastName, y.LastName));
Run Code Online (Sandbox Code Playgroud)
但是我怎样才能将我的结果结合起来
CheckedIn-Name
No - Aames
No - Smith
Yes - Barnes
Yes - Peters
Run Code Online (Sandbox Code Playgroud)
Tar*_*ang 31
使用linq.
如果你有列表L的对象
public class temp
{
public bool x;
public string y;
}
Run Code Online (Sandbox Code Playgroud)
然后使用:
L.orderby(a=>a.x).thenby(a=>a.y);
Run Code Online (Sandbox Code Playgroud)
你可以随意链接它.
Ser*_*ier 21
result.Sort((x,y) => x.CheckedIn==y.CheckedIn ?
string.Compare(x.LastName, y.LastName) :
(x.CheckedIn ? -1 : 1) );
Run Code Online (Sandbox Code Playgroud)
lah*_*rah 17
var sortResult = result.OrderBy(a => a.CheckedIn).ThenBy(a => a.LastName).ToList();
Run Code Online (Sandbox Code Playgroud)