Я получил этот код, который я кусочки, где я пытаюсь отсортировать список, по крайней мере, это то, что я пытаюсь сделать:пытается упорядочить список с Linq
List<TagLib.File> listOfFiles = new List<TagLib.File>();
foreach (string file in files)
{
TagLib.File fi = TagLib.File.Create(file);
listOfFiles.Add(fi);
}
System.Linq.IOrderedEnumerable<TagLib.File> pleaseSort
= listOfFiles.OrderBy(x => x.Tag.AlbumArtists)
.ThenBy(x => x.Tag.Album);
foreach (TagLib.File tl in pleaseSort)
{
...
}
линия, которая начинается с
System.Linq.IOrderedEnumerable
позволяет программе идти мимо него, но затем в каждой строке шагового через код он восходит к IOrderedEnumerable, и именно там я получаю следующее сообщение об ошибке:
-2147024809 at least one object must implement IComparable
Я буду первым, кто признает, что я не эксперт, это проект для домашних животных, над которым я работаю, но я не могу найти документацию, в которой четко объясняется, что я должен делать в этом пример. Любая помощь будет высоко ценится.
Что такое 'x.Tag.AlbumArtists'? –
Либо 'x.Tag.AlbumArtists', либо' x.Tag.Album' (или оба) не реализуют 'IComparable'. Очевидно, что «AlbumArtists» - это своего рода список. Итак, когда вы говорите, что хотите заказать файлы «AlbumArtists», можете ли вы логически объяснить, как вы ожидаете, что сортировка будет работать? Что бы он сортировал точно? – sstan
FWIW, вы проходите строку 'IOrderedEnumerable', потому что она не оценивает ваш оператор LINQ до цикла foreach. В этот момент он пытается оценить и выдает исключение. –