Sort a List using comparer

/*By Jiangong SUN*/


Today is thanks giving day! LOL :)


Firstly we have a list : 


List<FeatureResult> FeaturesList = new List<FeatureResult>();
foreach (var feature in Model.Features)
    {
        for (int c = 0; c < feature.Value.Count(); c++)
        {
            FeaturesList.Add(feature.Value[c]);
        }
    }


And then, we create a comparer :


public class FeatureResultComparer : IComparer<FeatureResult>
    {
        #region IComparer<FeatureResult> Members
		
	///Compare two result
        public int Compare(FeatureResult x, FeatureResult y)
        {
            return Level(x) - Level(y);
        }
		
	///add 1 if item has description 
	///add the length if item has multiple urls
        private int Level(FeatureResult item)
        {
            int res = 0;
            if (!string.IsNullOrEmpty(item.Description))
            {
                res += 1;
                if (item.ImageUrl != null && item.ImageUrl.Length > 0)
                    res += item.ImageUrl.Length;
            }
            return res;
        }


        #endregion
    }



Sort list by calling the comparer :

FeatureResultComparer featuresComparer = new FeatureResultComparer();
FeaturesList.Sort(featuresComparer);
FeaturesList.Reverse();


Enjoy coding !



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值