我有一个班级
public class Test
{
public string Value { get; set; }
}
然后
List<Test> values = new List<Test>() //contains 10 items
列表中的某些项目的Value属性可以以字符>
示例:
Name
Something
Example
> Another one
Demo
Student
> Home
如何对对象列表进行排序,以便列表中的第一项按字母顺序排序,以>
开头的项目按字母顺序排序,但位于列表的末尾?
这是我到目前为止所做的:
values.Where(x => !x.Value.StartsWith(">")).OrderBy(x => x.Value);
答案 0 :(得分:2)
您需要计算按
排序的密钥List<Test> ordered = values.OrderBy(v =>
v.Value.StartsWith(">") ? "ZZ" + v.Value : v.Value
).ToList();
“ZZ”是一个任意键,用于对以“&gt;”开头的值进行排序毕竟英语条款。 (作为字母表中的最后一个字母,没有以两个Z开头的英文单词)。 SInce“&gt;”字节值低于任何一个字母Z
是不够的,因为任何有效的英语术语都会在任何与Z>