我想为Windows Phone制作一些简单的播放器,但我发现SongLibrary按字母顺序排序(我觉得这很愚蠢)。所以我的问题是我如何按Track Number对其进行排序?
如果我做下一个:
MediaLibrary library = new MediaLibrary();
songCollection = library.Songs;
songCollection包含所有歌曲,但按字母顺序排列。接下来呢?我试图理解“OrderBy方法”但它让我太困惑了。
答案 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 Objects和OrderBy
方法。你需要的是一个代表,最简单的方法是使用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();