List排序简单介绍

namespace ListPaiXu
{

    class ShopItem
    {
        public int id;

        public ShopItem(int id)
        {
            this.id = id;
        }
    }


    class Item: IComparable<Item>//自定义排序必须继承此接口
    {
        public int money;

        public Item(int m)
        {
            this.money = m;
        }

        public int CompareTo(Item other)//接口实现的方法
        {
            //返回1表示把数放在后面,-1为前面,0表示位置不变

            if(this.money>other.money)
            {
                return 1;
            }
            else
            {
                return -1;
            }
        }
    }



    class Program
    {
        static void Main(string[] args)
        {
            #region List排序

            #endregion

            #region Sort方法
            //升序排序
            List<int> l1 = new List<int>();
            l1.Add(1);
            l1.Add(15);
            l1.Add(11);
            l1.Add(16);
            l1.Add(31);
            l1.Add(21);
            l1.Sort();
            foreach(var item in l1)
            {
                Console.WriteLine(item);
            }
            Console.WriteLine("*****************");
            #endregion

            #region 自定义排序
            List<Item> itlist = new List<Item>();
            itlist.Add(new Item(45));
            itlist.Add(new Item(55));
            itlist.Add(new Item(25));
            itlist.Add(new Item(48));
            itlist.Add(new Item(41));
            itlist.Add(new Item(95));
            itlist.Sort();

            foreach(var item in itlist)
            {
                Console.WriteLine(item.money);
            }
            Console.WriteLine("***************");
            #endregion

            #region 利用委托进行排序
            List<ShopItem> shoplist = new List<ShopItem>();
            shoplist.Add(new ShopItem(1));
            shoplist.Add(new ShopItem(4));
            shoplist.Add(new ShopItem(5));
            shoplist.Add(new ShopItem(3));
            shoplist.Add(new ShopItem(2));
            shoplist.Add(new ShopItem(6));

            //shoplist.Sort(SortShopItem);//和下面一样
            shoplist.Sort((a, b) =>{return a.id > b.id ? 1 : -1;});

            foreach (var item in shoplist)
            {
                Console.WriteLine(item.id);
            }

            #endregion

        }

        static int SortShopItem(ShopItem a,ShopItem b)
        {
            if(a.id>b.id)
            {
                return 1;
            }
            else
            {
                return -1;
            }
        }

    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值