我有下面的代码填写列表.
List<Person> people = new List<Person>();
for (int i = 1; i <= 30; i++)
{
var p = new Person();
if (i <= 10) p.Group = "A";
else if (i <= 20) p.Group = "B";
else p.Group = "C";
p.Name = "Person " + i;
if (i % 3 == 0)
p.Age = 10;
else
p.Age = 20;
people.Add(p);
}
Run Code Online (Sandbox Code Playgroud)
现在我想按照以下顺序进行排序:所有人必须是第一个拥有"B"组并且必须按年龄排序的人.然后其余的人必须按年龄排序,集团不必有序.这是一个例子:
Name Group Age
Person B 10
Person B 10
.....
Person B 20
Person B 20
Person B 20
.....
//From here Group doesn't have to be in order.
Person A 10
Person A 10
.....
Person C 10
Person C 10
.....
Person A 20
Person A 20
Person A 20
.....
Person C 20
Person C 20
Person C 20
....
Run Code Online (Sandbox Code Playgroud)
我可以使用一个linq查询执行此操作吗?
谢谢您的帮助!
cuo*_*gle 12
您可以使用OrderBy命令B第一,在这里招的false总是前true.然后你订购Age:
var result = list.OrderBy(p => p.Group != "B")
.ThenBy(p => p.Age);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
192 次 |
| 最近记录: |