【发布时间】:2009-04-13 22:08:42
【问题描述】:
我有一个继承自List<> 的集合类。我已经设置了一个函数来按某个属性对列表进行排序,如下所示:
public PlaylistCollection SortByName(IEnumerable<Playlist> playlists)
{
return (PlaylistCollection)playlists.OrderBy(p => p.Name);
}
当我尝试在我的代码中使用排序结果时:
artistSource.Playlists = (PlaylistCollection)new List<Playlist>(artistSource.Playlists.SortByName(artistSource.Playlists));
我得到错误:
Unable to cast object of type 'System.Linq.OrderedEnumerable`2[...Playlist,System.String]'
to type '...PlaylistCollection'."
考虑到 VS 告诉我存在显式转换,这有点令人沮丧,所以我添加了上述转换。
如何正确地将 IEnumerable<> 投射到我的收藏中?
【问题讨论】: