J'ai une classe de collection qui hérite de List<>
. J'ai mis en place une fonction pour trier la liste par une propriété comme ceci:Retour du type correct après l'utilisation de OrderBy()
public PlaylistCollection SortByName(IEnumerable<Playlist> playlists)
{
return (PlaylistCollection)playlists.OrderBy(p => p.Name);
}
Lorsque je tente d'utiliser les résultats triés dans mon code comme ceci:
artistSource.Playlists = (PlaylistCollection)new List<Playlist>(artistSource.Playlists.SortByName(artistSource.Playlists));
Je reçois l'erreur :
Unable to cast object of type 'System.Linq.OrderedEnumerable`2[...Playlist,System.String]'
to type '...PlaylistCollection'."
Ceci est modérément frustrant étant donné que VS m'a dit qu'une conversion explicite existe, j'ai donc ajouté la distribution ci-dessus.
Comment puis-je diffuser du IEnumerable<>
correctement dans ma collection?
Pendant que j'avais essayé votre première suggestion avant déjà, je l'ai combiné avec votre deuxième suggestion et cela a fonctionné très bien. Je l'aurais fait comme ça au début, j'espérais juste une solution plus 'élégante', je suppose. Merci! –