如何按曲目编号顺序对乐曲库进行排序

时间:2013-12-24 18:49:51

标签: c# sorting windows-phone-8

我想为Windows Phone制作一些简单的播放器,但我发现SongLibrary按字母顺序排序(我觉得这很愚蠢)。所以我的问题是我如何按Track Number对其进行排序?

如果我做下一个:

        MediaLibrary library = new MediaLibrary();
        songCollection = library.Songs;

songCollection包含所有歌曲,但按字母顺序排列。接下来呢?我试图理解“OrderBy方法”但它让我太困惑了。

2 个答案:

答案 0 :(得分:1)

您可以使用OrderBy

 List<Song> orderedList =  songCollection.OrderBy(x => x.TrackNumber).ToList();

请参阅此示例:

        Pet[] pets = { new Pet { Name="Barley", Age=8 },
                       new Pet { Name="Boots", Age=4 },
                       new Pet { Name="Whiskers", Age=1 } };

        IEnumerable<Pet> query = pets.OrderBy(pet => pet.Age);

答案 1 :(得分:1)

您可以使用LINQ to ObjectsOrderBy方法。你需要的是一个代表,最简单的方法是使用lambda expression

List<Song> orderedSongs = songCollection.OrderBy(s => s.TrackNumber).ToList();

其他ToList()调用将导致查询执行并将实现列表,因此,只要您引用orderedSongs订单,就不会一次又一次地执行。

您可以使用基于语法的查询获得相同的内容:

List<Song> orderedSongs = (from s in songCollection
                           orderby s.TrackNumber
                           select s).ToList();