list sort()委托排序

自定义对象ConfigEquipmentLotteryDisplayInfo ,给List 集合按优先级排序。

public class ConfigEquipmentLotteryDisplayInfo
{    
    [ConfigAttribute(Name = "random_group")]
    public string _RandomGroup;
    [ConfigAttribute(Name = "priority")]
    public long _Priority;
}

 protected Dictionary m_infoDicByInternalId;

 public List GetSpecifyRandomGroupListInfo(string randomGroup)
    {
        List displayList = new List();
        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); });

 

你可能感兴趣的:(C#)