当前位置: 首页 > news >正文

商城网站一般用什么做二次开发建筑工程招标网站

商城网站一般用什么做二次开发,建筑工程招标网站,阳信网站建设,软文推广300字目录 1.系统排序原理 2.方式一&#xff1a;调用接口并重写 3.方式二&#xff1a;传排序规则函数做参数 1.系统排序原理 当我们对一个List<int>类型的数组如list1排序时&#xff0c;一个轻松的list1.sort();帮我们解决了问题 但是在实际应用过程中&#xff0c;往往我们…

目录

1.系统排序原理

2.方式一:调用接口并重写

3.方式二:传排序规则函数做参数


1.系统排序原理

当我们对一个List<int>类型的数组如list1排序时,一个轻松的list1.sort();帮我们解决了问题

但是在实际应用过程中,往往我们遇到的问题会更加棘手

比如这样一个类:

    class BagItem{public int id;public string name;public int count;public BagItem(int id, string name, int count){this.id = id;this.name = name;this.count = count;}}

这是一个背包物品类,包含了物品编号id,物品名称name,物品数量count

            List<BagItem> bagItems = new List<BagItem>();//传入参数依次为id,name,countbagItems.Add(new BagItem(1, "生命药水", 5));bagItems.Add(new BagItem(2, "魔力药水", 12));bagItems.Add(new BagItem(3, "速度药水", 7));bagItems.Add(new BagItem(4, "铁皮药水", 3));bagItems.Add(new BagItem(5, "重力药水", 9));bagItems.Add(new BagItem(6, "回城药水", 2));bagItems.Sort();

当我们创建一个List<BagItem>数组并想对它排序时,猜猜会发生什么?

这时系统会报错

想要弄明白为什么报错,需要先解释一个sort排序的原理

sort排序时会用到CompareTo函数,这个函数方法存放在IComparable接口

之前我们List<int>类型数组排序能够成功是因为int类调用了上述接口并实现,所以sort排序时可以成功运行

可以看到int类调用了IComparable接口

而我们自己写的类调用不到对应类型的函数,所以运行失败

接下来将介绍两种方法时得我们自己写的类可以成功排序

2.方式一:调用接口并重写

既然int类可以调用,我们也可以给自己写的类调用这个接口

    class BagItem:IComparable<BagItem>{public int id;public string name;public int count;public BagItem(int id, string name, int count){this.id = id;this.name = name;this.count = count;}public int CompareTo(BagItem other){//返回类型int//返回值>0时,当前成员排在other成员右边//返回值<0时,当前成员排在other成员左边//可以理解为other成员处于0位置if (other.count > this.count || (other.count == this.count && other.id >= this.id))return -1;elsereturn 1;}}internal class Program{static void Main(string[] args){List<BagItem> bagItems = new List<BagItem>();//传入参数依次为id,name,countbagItems.Add(new BagItem(3, "生命药水", 5));bagItems.Add(new BagItem(2, "魔力药水", 12));bagItems.Add(new BagItem(1, "速度药水", 12));bagItems.Add(new BagItem(5, "铁皮药水", 3));bagItems.Add(new BagItem(4, "重力药水", 9));bagItems.Add(new BagItem(6, "回城药水", 2));foreach (BagItem item in bagItems){Console.WriteLine("物品:{0},id:{1},数量{2}",item.name,item.id,item.count);}bagItems.Sort();Console.WriteLine("---------------------");foreach (BagItem item in bagItems){Console.WriteLine("物品:{0},id:{1},数量{2}", item.name, item.id, item.count);}}}

3.方式二:传排序规则函数做参数

当我们查看sort用法时,我们可以看到它还有其他重载类型

我们默认使用的是第三种无参数的类型,如果我们写一个函数作为参数传入时,那么就可以使用第一类型,传入我们自己的比较规则。

    internal class Program{static void Main(string[] args){List<BagItem> bagItems = new List<BagItem>();//传入参数依次为id,name,countbagItems.Add(new BagItem(3, "生命药水", 5));bagItems.Add(new BagItem(2, "魔力药水", 12));bagItems.Add(new BagItem(1, "速度药水", 12));bagItems.Add(new BagItem(5, "铁皮药水", 3));bagItems.Add(new BagItem(4, "重力药水", 9));bagItems.Add(new BagItem(6, "回城药水", 2));foreach (BagItem item in bagItems){Console.WriteLine("物品:{0},id:{1},数量{2}",item.name,item.id,item.count);}bagItems.Sort(SortBagItems);Console.WriteLine("---------------------");foreach (BagItem item in bagItems){Console.WriteLine("物品:{0},id:{1},数量{2}", item.name, item.id, item.count);}}static int SortBagItems(BagItem left,BagItem right){//返回类型int//返回值>0时,当前成员排在other成员右边//返回值<0时,当前成员排在other成员左边//可以理解为other成员处于0位置if (right.count > left.count || (right.count == left.count && right.id >= left.id))return -1;elsereturn 1;}}

http://www.yayakq.cn/news/406397/

相关文章:

  • 学校网站建设需求分析网络营销活动推广方式
  • 什么手机可做网站网络设计培训学校
  • 网站自然排名优化免费代加工项目合作
  • apache多网站配置苏州专业网站建设开发
  • 合江做网站长沙网站制作
  • 网站信任的体验如何做网站开发项目背景
  • 规划电子商务网站建设方案百度关键词优化多少钱
  • 网站信息报送制度建设制作网站的公司还能赚钱吗
  • 开发一个网站系统报价莆田网站建设制作
  • qq在线网站代码生成苏州工业园区两学一做教育网站
  • 怎么找到一个公司的网站徐州10年网站建设 推广公司
  • 做直播网站视频教程公司展厅装修
  • 做外贸网站需要注意什么青岛专业网站建设推广报价
  • 有什么网站做可以国外的生意腾讯云网站建设教学视频教程
  • 深圳高端网站建设主体负责人电话修改 网站备案
  • seo的收费标准seo网站描述之间用什么标点符号
  • 成都做网站的公司哪家好wordpress epanel
  • wordpress怎么修改主页谷歌优化师
  • 全屋定制哪个网站好青海省制作网站专业
  • 我们是谁 网站运营一家专门做建材的网站
  • 医疗网站建设行业现状和影响创意字体设计网站
  • 安徽省工程建设安全协会网站2018年网站开发语言排行
  • 签订网站建设合同需要注意什么建设信息网站
  • 企业手机端网站模板河南省国基建设集团有限公司网站
  • 网站开发中如何设计验证码wordpress 珠宝主题
  • 专做电子产品评测的网站电子商务网站建设训练总结
  • 建站系统哪个比较好wordpress 侧边栏左边
  • 公众微信网站建设口碑好的定制网站建设提供商
  • 网站要和别人做api 链接温州百度网站快速优化
  • 企业网站开发的背景和意义浙江省特种作业人员证书查询