我使用OrderBy()
Lists
方法获得了一种奇怪的行为。
想象一下,您有一个列表,每个人都有Firstname
,Lastname
和Gender
。
如果此列表中的所有人都是Gender
"m"
,我会在每次调用后获得不同的排序
list.OrderBy(p => p.Gender)
但是我不希望我的列表在每次刷新时跳转。对此有何想法?
答案 0 :(得分:5)
如果性别相同,您可以使用ThenBy()
使用其他属性对其进行排序。像这样:
list.OrderBy(p=>p.Gender).ThenBy(p=>p.FirstName);
答案 1 :(得分:1)
在您的代码中Gender
m
是字符串类型,使用m
的结果很多,这不是可订购的实体。因此,当您尝试使用此属性进行订购时,它会使用m
随机排序。尝试使用具有某些可订购实体的其他内容进行排序,例如FirstName
。
list.OrderBy(p=>p.Firstname);
或
list.OrderBy(p=>p.Lastname);
或
list.OrderBy(p=>p.Gender).ThenBy(p=>p.FirstName);
答案 2 :(得分:1)
按所有字段排序,例如:
list.OrderBy(x=>x.Gender).ThenBy(x=>x.FirstName).ThenBy(x=>x.LastName);