首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

结构数组按特定顺序排序的可能性

2012-08-03 
结构数组按特定顺序排序的可能性,高手进C# codepublic struct ChanZiInfo{public string MapNamepublic i

结构数组按特定顺序排序的可能性,高手进

C# code
        public struct ChanZiInfo        {            public string MapName;            public int TarX;            public int TarY;        }        ChanZiInfo[] CZInfo = new ChanZiInfo[10];        CZInfo[0].MapName = "长春";        CZInfo[0].TarX = 100;        CZInfo[0].TarY = 200;                CZInfo[1].MapName = "沈阳";        CZInfo[1].TarX = 125;        CZInfo[1].TarY = 658;        CZInfo[0].MapName = "长春";        CZInfo[0].TarX = 512;        CZInfo[0].TarY = 998;        .        .        .        .        .        .        CZInfo[0].MapName = "上海";        CZInfo[0].TarX = 123;        CZInfo[0].TarY = 635;


这样的一个结构, 如何能让这个结构数组 按 MapName 排序?

[解决办法]
CZInfo = CZInfo.OrderBy(x => MapName).ToArray();
[解决办法]
没有linq和lambda,也可以用IComparer接口,然后用动态数组List.Sort(IComparer)排序,不过比较麻烦,

public struct ChanZiInfo
{
public string MapName;
public int TarX;
public int TarY;

public class Cmp:IComparer<ChanZiInfo>
{
public int Compare(ChanZiInfo x,ChanZiInfo y)
{
return x.MapName.CompareTo(y.MapName);
}
}
}


排序的时候:

List<ChanZiInfo> CZInfo=new List<ChanZiInfo>();

....

CZInof.Sort(new ChanZiInfo.Cmp);//这样就可以排序,


热点排行