我有一個使用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比較函數是我比較如何在給定的信息結構串的例子。但我不知道如何根據該VAL結構信息會員
+1一個清晰,正確的答案。只有缺少可能建議有VAL實現IComparable並隱藏其成員如何比較/有一個單獨的IComparer –
kaj
2012-03-14 08:35:43
@KAJ他選擇了一個「外部」比較,而不是「內部」比較,所以我沒有建議它。 – xanatos 2012-03-14 08:37:52