У меня есть два списка. Один имеет тип MyClass и заполнен этими классами, написанными мной. А у второго есть некоторые значения int.
И проблема в том, что я не знаю, как справиться с сортировкой первого списка по значениям второго.
Я понятия не имею, как написать IComparer для использования метода списка сортировки. Я видел пример в MSDN, но я не знаю, как его изменить.
http://msdn.microsoft.com/en-us/library/234b841s.aspx#Y535
Вот моя программа:
// ##################################
ref class MyClass{
private:
int x;
int y;
String^ name;
public:
MyClass(int x, int y, String^ name){
this->x = x;
this->y = y;
this->name = name;
}
...
};
//###### in some button which will initialize...:
List<MyClass^>^ listMyClass = gcnew List<MyClass^>(3);
listMyClass->Add(gcnew MyClass(3, 5, "class1"));
listMyClass->Add(gcnew MyClass(1, 2, "class2"));
listMyClass->Add(gcnew MyClass(6, 8, "class3"));
List<int>^ numbers = gcnew List<int>(3);
numbers->Add(2);
numbers->Add(4);
numbers->Add(1);
// ###################################
Эти числа чисел List представляют своего рода состояние элементов listMyClass. Поэтому я хотел бы отсортировать listMyClass, используя значения из номеров списка.
Я бы хотел получить такой результат после сортировки:
listMyClass[1]
является первым, потому что номер 4 из списка номеров является самым высоким. затем
listMyClass[0]
, а затем listMyClass[2]
Есть ли какие-либо возможности для решения этой проблемы?