自定义对象ConfigEquipmentLotteryDisplayInfo ,给List<ConfigEquipmentLotteryDisplayInfo> 集合按优先级排序。
public class ConfigEquipmentLotteryDisplayInfo
{
[ConfigAttribute(Name = "random_group")]
public string _RandomGroup;
[ConfigAttribute(Name = "priority")]
public long _Priority;
}
protected Dictionary<long, ConfigEquipmentLotteryDisplayInfo> m_infoDicByInternalId;
public List<ConfigEquipmentLotteryDisplayInfo> GetSpecifyRandomGroupListInfo(string randomGroup)
{
List<ConfigEquipmentLotteryDisplayInfo> displayList = new List<ConfigEquipmentLotteryDisplayInfo>();
var it =m_infoDicByInternalId.GetEnumerator();
while (it.MoveNext())
{
var data = it.Current.Value;
if (data._RandomGroup==randomGroup && data._DisplayChance>Single.Epsilon)
{
displayList.Add(data);
}
}
displayList.Sort(SortCompare);
return displayList;
}
//排序
private int SortCompare(ConfigEquipmentLotteryDisplayInfo obj1, ConfigEquipmentLotteryDisplayInfo obj2)
{
int res = 0;
if (obj1._Priority > obj2._Priority)
{
res = 1;
}
else if (obj1._Priority < obj2._Priority)
{
res = -1;
}
return res;
}
排序可以简化成如下形式:
displayList.Sort((a, b) => { return a._Priority.CompareTo(b._Priority); });
本文介绍了一种自定义对象ConfigEquipmentLotteryDisplayInfo的使用方法,通过该对象实现了一个装备抽奖显示信息的列表按优先级进行排序的算法。具体实现中,首先通过遍历字典m_infoDicByInternalId获取所有符合随机组条件的数据,然后利用Sort方法对这些数据按_Priority属性进行排序。
1491

被折叠的 条评论
为什么被折叠?



