public void ModifyRingPaihangData(RingRankingInfo data) { if (null != data) { lock (this.rankingDatas) { PlayerRingRankingData result = this.rankingDatas.Find((PlayerRingRankingData paiHang) => paiHang.roleId == data.nRoleID); if (null == result) { if (this.rankingDatas.Count < RingPaiHangManager.RankingList_Max_Num) { this.rankingDatas.Add(data.getPlayerRingRankingData()); } else if (this.CompareTo(data.getPlayerRingRankingData(), this.rankingDatas[this.rankingDatas.Count - 1]) < 1) { this.rankingDatas.RemoveAt(this.rankingDatas.Count - 1); this.rankingDatas.Add(data.getPlayerRingRankingData()); } } else { try { result.UpdateData(data); this.rankingDatas.Sort(); } catch (Exception ex) { DataHelper.WriteFormatExceptionLog(ex, "", false, false); } } } } }
private int CompareTo(PlayerRingRankingData A, PlayerRingRankingData B) { int result; if (A.GoodWillLevel == B.GoodWillLevel) { if (A.GoodWillStar == B.GoodWillStar) { int nRet = string.Compare(A.RingAddTime, B.RingAddTime); result = ((nRet < 0) ? -1 : ((nRet == 0) ? 0 : 1)); } else { result = ((A.GoodWillStar < B.GoodWillStar) ? 1 : -1); } } else { result = ((A.GoodWillLevel < B.GoodWillLevel) ? 1 : -1); } return(result); }