如何对List< T>进行排序通过多个T.attributes?

如何对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.

因此,一组排序结果的示例将是(名称,播放顺序):

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);