У меня есть небольшая проблема с сортировкой списка с использованием реализации IComparer.Сортировка списка на вложенных членах структуры
public struct VAL
{
public int i;
public string s;
}
public struct INFO
{
public string name;
public VAL val;
public string address;
}
public class ListSorter:IComparer<INFO>
{
public enum SORT_TYPE{BYNAME, BYVAL,BYADDRESS};
public int Compare(INFO i1, INFO i2)
{
switch(sortType)
{
case SORT_TYPE.BYNAME;
return string.Compare(i1.name, i2.name);
case SORT_TYPE.BYADDRESS:
return string.Compare(i1.address, i2.address);
case SORT_TYPE.BYVAL:
{
??????
}
}
}
}
Функция сравнения в классе ListSorter является примером того, как я сравнение строк в данном INFO структуре. Но я не знаю, как сортировать список, основанный на информации членов Валь STRUCT
+1 для четкого и правильного ответа. Единственное, чего не хватает, возможно, предложить VAL реализовать IComparable и скрыть, как его участники сравнивают/имеют отдельный IComparer. –
kaj
@KAJ. Он выбрал «внешний» сравнитель вместо «внутреннего» сравнения, поэтому я не предлагал его. – xanatos