如何对 List<T> 进行排序?通过多个 T.attributes? [英] How can I sort a List&lt;T&gt; by multiple T.attributes?

查看:26
本文介绍了如何对 List<T> 进行排序?通过多个 T.attributes?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

假设我有一个歌曲列表.

Let's say I have a List of Songs.

Song {
    public string Name = "";
    public int PlayOrder = 0;
    }

现在我想先按 PlayOrder 从零开始对它们进行排序,然后按字母顺序按 Name 排序.

Now I want to sort them first by PlayOrder starting at zero and second by Name alphabetically.

因此,一组排序结果示例为 (Name, PlayOrder):

So an example set of sorted results would be (Name, PlayOrder):

/*
    Pachelbel's Canon, 0
    A Happy Song, 4
    Beethoven's 5th, 4
    Some Other Song, 7
*/

看看 PlayOrder = 4 个是如何按字母顺序排列的?这就是我要去的地方.

See how the PlayOrder = 4 ones are in order alphabetically? That's what I'm going for.

现在我只按一个字段排序:

Right now I have it only sorting by one field:

List<Song> final = new List<Song>();

...

final.Sort((x, y) => x.PlayOrder.CompareTo(y.PlayOrder));

return final;

如上所示,我如何还可以按名称排序?

How can I also sort by Name as demonstrated above?

推荐答案

return final.OrderBy(s => s.PlayOrder).ThenBy(s => s.Name);

这篇关于如何对 List<T> 进行排序?通过多个 T.attributes?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆