sort
RankItem liXiaoYao = new RankItem("李逍遥",199,16000,20000);
RankItem zhaoLingEr = new RankItem("赵灵儿",199,16000,12000);
RankItem tangYuXiaoBao = new RankItem("唐钰小宝",165,14300,50000);
RankItem jiuJianXian = new RankItem("酒剑仙",200,20000,0);
RankItem linYueRu = new RankItem("林月如",160,12000,30000);
List<RankItem> ranks = new List<RankItem>();
ranks.Add(liXiaoYao);
ranks.Add(zhaoLingEr);
ranks.Add(tangYuXiaoBao);
ranks.Add(jiuJianXian);
ranks.Add(linYueRu);
foreach(RankItem value in ranks)
{
Console.WriteLine(value.playerName+" "+value.level+" "+
value.AD+" "+value.gold
);
}
ranks.Sort(CompareTo);
Console.WriteLine("*****************排序后********************");
foreach (RankItem value in ranks)
{
Console.WriteLine(value.playerName + " " + value.level + " " +
value.AD + " " + value.gold
);
}
}
/// <summary>
/// 比较规则
/// </summary>
/// <param name="back"></param>
/// <param name="before"></param>
/// <returns>
/// 如果需要交换 返回-1;
/// 不需要交换 返回1;
/// 返回0 交不交换不一定
///
/// </returns>
static int CompareTo(RankItem back,RankItem before)
{
if (back.level > before.level)
{
//判断等级
return -1;
}
else
{
//<=
if (back.level == before.level)
{
//等级相同 判断战力
if (back.AD > before.AD)
{
return -1;
}
else
{
if (back.AD == before.AD)
{
//战力相同判断金币
if (back.gold > before.gold)
{
return -1;
}
}
}
}
}
return 1;
}
}
class RankItem
{
public string playerName;
public int level;
public int AD;
public int gold;
public RankItem(string playerName,int level,int AD,int gold)
{
this.playerName = playerName;
this.level = level;
this.AD = AD;
this.gold = gold;
}
}
}