Сортировка List.Sort с IComparer - C#
Формулировка задачи:
Есть класс компаратора:
Сортировка:
Ошибки:
Наиболее подходящий перегруженный метод для "System.Collections.Generic.List<Song>.Sort(System.Collections.Generic.IComparer<Song>)" имеет несколько недопустимых аргументов
Аргумент "1": преобразование типа из "radio.Sort.DurationComparer" в "System.Collections.Generic.IComparer<Song>" невозможно
tmp.Sort(comparer);
вызывает ошибки, почему? Во всех документациях и примерах такой способ вполне должен быть рабочим, же.
public class DurationComparer : IComparer<Song>
{
public int Compare(Song c1, Song c2)
{
return c1.Duration.CompareTo(c2.Duration);
}
}public void Sort<Song>(ObservableCollection<Song> listToSort)
{
List<Song> tmp = new List<Song>();
foreach (Song song in listToSort)
{
tmp.Add(song);
}
DurationComparer comparer = new DurationComparer();
tmp.Sort(comparer);
//var orderedSm = tmp.OrderBy(x => x.Duration).ToList();
}Решение задачи: «Сортировка List.Sort с IComparer»
textual
Листинг программы
tmp.Sort((IComparer<Song>)comparer);