我有两个列表。一种是MyClass类型的,并且充满了我写的这些类。第二个有一些int值。C++,Net,WindowsForms按其他列表的值排序列表
问题是,我不知道如何处理使用第二个值的排序第一个列表。 我不知道如何编写一个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]
有没有处理这个挑战的任何可能性?