Ho una classe di raccolta che eredita da List<>
. Ho installato una funzione per ordinare l'elenco per una certa proprietà in questo modo:Restituzione del tipo corretto dopo l'utilizzo di OrderBy()
public PlaylistCollection SortByName(IEnumerable<Playlist> playlists)
{
return (PlaylistCollection)playlists.OrderBy(p => p.Name);
}
Quando provo ad utilizzare i risultati ordinati nel mio codice come questo:
artistSource.Playlists = (PlaylistCollection)new List<Playlist>(artistSource.Playlists.SortByName(artistSource.Playlists));
ottengo l'errore :
Unable to cast object of type 'System.Linq.OrderedEnumerable`2[...Playlist,System.String]'
to type '...PlaylistCollection'."
Questa è moderatamente frustrante considerando VS mi ha detto che esiste una conversione esplicita, così ho aggiunto il cast sopra.
Come faccio a trasmettere correttamente da IEnumerable<>
alla mia raccolta?
Mentre io avevo provato il tuo primo suggerimento prima di già, ho combinato con il tuo secondo suggerimento e ha funzionato bene. All'inizio lo avrei fatto in quel modo, speravo solo in una soluzione più "elegante", immagino. Grazie! –