0

我有一个歌曲列表。我需要存储此列表以供以后加载,但由于没有内置的唯一 ID,我只是使用一个KeyValuePair存储曲目标题和艺术家的 ID。这应该足够独特,但仅此方法就需要 50 秒才能在我的 PC 上播放 1800 首曲目。(我已经更新了代码。MediaLibrary只是为了可运行的代码。

List<KeyValuePair<string,string>> kv = new List<KeyValuePair<string,string>>();

List<Song> chosenSongs = new List<Song>();
//...code to add to chosenSongs   

var songs = chosenSongs; 
// var songs = new MediaLibrary().Songs;

for(int i = 0; i < songs.Count; i++)
{
    kv.Add(new KeyValuePair<string, string>(songs[i].Name, songs[i].Artist.ToString()));
}

这太慢了,还没有序列化。有没有更好的方法来序列化 Song 类型的对象?

4

1 回答 1

1

在您的代码中,您将获得Songs 的各种属性。我相当肯定这会导致在 PC 上读取磁盘(充其量,您可以选择一个网络媒体库),当您有数千次要通过时,这基本上会很慢。

最好的办法是尝试构建 UI,以便分散工作,即在用户选择/需要显示时加载每首歌曲的信息。

于 2013-05-13T14:31:21.113 回答