Mam klasę kolekcji dziedziczącą po List<>
. Wcześniej skonfigurować funkcję, aby posortować listę według niektórych właściwości tak:Powracanie odpowiedniego typu po użyciu polecenia OrderBy()
public PlaylistCollection SortByName(IEnumerable<Playlist> playlists)
{
return (PlaylistCollection)playlists.OrderBy(p => p.Name);
}
Kiedy próbuję użyć posortowane wyniki w moim kodu tak:
artistSource.Playlists = (PlaylistCollection)new List<Playlist>(artistSource.Playlists.SortByName(artistSource.Playlists));
pojawia się błąd :
Unable to cast object of type 'System.Linq.OrderedEnumerable`2[...Playlist,System.String]'
to type '...PlaylistCollection'."
jest umiarkowanie frustrujące rozważa VS powiedział mi, że istnieje wyraźna przemiana, więc dodałem wyżej obsady.
Jak prawidłowo rzucić z IEnumerable<>
do mojej kolekcji?
Chociaż próbowałem swoją pierwszą propozycję już wcześniej, że łączy go z drugiej sugestii i to działało dobrze. Zrobiłbym to tak na początku, po prostu liczyłem na bardziej "eleganckie" rozwiązanie, jak sądzę. Dzięki! –