Бих искал да сортирам общ списък в базов клас от неговите производни класове.
Всеки производен клас сортира по различно свойство.
Затова използвам тази идея: предайте подходящо свойство, по което да сортирате списъка с базови класове.
protected void SortBy( Func<MyBaseClass, IComparable> getProp)
{
if (BaseClassList != null && BaseClassList .Count > 0)
{
BaseClassList = BaseClassList
.OrderBy(x => getProp(x))
.ToList();
}
}
И го извиквайте от производни класове от SortBy(x => x.GetTop);
Е, сега бих искал да сортирам по няколко свойства; за всяко допълнително изпратено свойство трябва да се добави израз ThenBy
към тялото на метода.
BaseClassList = BaseClassList
.OrderBy(x => getProp(x))
.ThenBy(x => x.getOtherProp)
.ToList();
Тъй като не знам колко свойства ще бъдат изпратени, бих искал да използвам идеята params
.
Разбирам обаче, че е невъзможно, тъй като 'The parameter array must be a single dimensional array
'.
Някакви идеи?