У меня есть класс со строковым полем, которое я хочу сортировать, используя несколько условий.Пользовательский список Сортировать по нескольким условиям
Класс в вопросе
class Items
{
public string ItemType {get; set;}
public string Code {get; set;}
// other members elided
public Items(string _IT, string _Cd)
{
ItemType = _IT;
Code = _Cd;
}
}
Использование класса
List<Items> lstItemCol = new List<Items>();
lstItemCol.Add(new Items("EE", "12345"));
lstItemCol.Add(new Items("WW", "5881"));
lstItemCol.Add(new Items("LLL", "215458"));
lstItemCol.Add(new Items("WW", "789"));
lstItemCol.Add(new Items("EE", "582"));
То, что я хочу сделать, это своего рода список, так что элементы упорядочены по ЭЭ с последующим WW затем LLL
Порядок вывода должен быть:
"EE", "582"
"EE", "12345"
"WW", "5881"
"WW", "789"
"LLL", "215458"
Я не могу придумать элегантный способ сделать это, а затем добавить другое поле в класс (sortOrder
) и отсортировать по этому вопросу: я бы предпочел избежать этого и просто сортировать по ItemType?
Проверьте перегрузки 'List .Sort()'. Используйте произвольное сравнение. –
siride
Вы были бы достаточно счастливы, создав * новый * список, который сортируется так, как вы хотите? Если это так, LINQ, безусловно, путь. В противном случае пользовательское сравнение не должно быть слишком сложным ... –
Ваш порядок сортировки не ясен. В частности, как сортировать элементы, когда ItemType равен – Amit