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

沈阳出名网站免费cad图纸下载网

沈阳出名网站,免费cad图纸下载网,做网站的工具怎么使用,公司一个人做网站文章目录 一、ListT自带的排序方法1、ListT调用Sort()排序2、 能够使用 Sort() 方法进行排序的本质 二、自定义类的排序1、通过实现泛型IComparableT 接口#xff08;1#xff09;示例#xff08;2#xff09;直接调用 int 类型的 CompareTo 方法进… 文章目录 一、ListT自带的排序方法1、ListT调用Sort()排序2、 能够使用 Sort() 方法进行排序的本质 二、自定义类的排序1、通过实现泛型IComparableT 接口1示例2直接调用 int 类型的 CompareTo 方法进行简化3降序排序 2、 直接实现 IComparable 接口不推荐3、通过委托函数进行自定义排序1示例2使用匿名方法Delegate简化3再使用 Lambda 表达式简化 三、总结专栏推荐完结 一、List自带的排序方法 1、List调用Sort()排序 ListT 提供了一个内建的 Sort() 方法来对列表进行排序。它的基本用法如下 Listint list new Listint { 3, 2, 6, 1, 4, 5 }; list.Sort(); // 默认升序排序// 输出排序后的结果 foreach (int item in list) {Console.WriteLine(item); }输出 1 2 3 4 5 62、 能够使用 Sort() 方法进行排序的本质 Listint 能够使用 Sort() 方法进行排序背后的原因是 int string等类型实现了 IComparableT 接口 二、自定义类的排序 1、通过实现泛型IComparableT 接口 如果想对自定义对象排序可以让自定义类实现 IComparableT 接口。在这个接口中必须实现 CompareTo 方法来定义对象间的比较规则。 CompareTo 方法的基本结构 public int CompareTo(T other)T 是与当前对象进行比较的类型。other 是传入的另一个对象它与当前对象进行比较。 CompareTo 返回值的含义 CompareTo 方法用于定义对象的排序规则。通过返回的整数值来决定当前对象与传入对象之间的位置关系。 返回 负值当前对象排在传入对象前面。返回 0当前对象与传入对象相等不改变位置。返回 正值当前对象排在传入对象后面。 1示例 public class Item : IComparableItem {public int money;public Item(int money){this.money money;}public int CompareTo(Item? other){if (other null) return 1;if (this.money other.money){return 1;// 返回 正值当前对象排在传入对象后面。}else if (this.money other.money){return -1;// 返回 负值当前对象排在传入对象前面。}else{return 0;// 返回 0当前对象与传入对象相等不改变位置。}} }调用.Sort()进行排序 ListItem itemList new ListItem {new Item(45),new Item(10),new Item(99),new Item(24),new Item(100),new Item(12) };itemList.Sort(); // 使用 Sort() 排序// 输出排序后的结果 foreach (Item item in itemList) {Console.WriteLine(item.money); }输出 10 12 24 45 99 100如果想降序CompareTo返回值正负反过来就行了 2直接调用 int 类型的 CompareTo 方法进行简化 这个做法更加简洁也符合 CompareTo 方法的惯用方式减少了手动判断大小的代码。 public class Item : IComparableItem {public int money;public Item(int money){this.money money;}public int CompareTo(Item? other){if (other null) return 1;// 按照 money 进行排序升序return this.money.CompareTo(other.money);} }3降序排序 如果需要降序排序只需要调整 CompareTo 方法中的返回值逻辑 public int CompareTo(Item other) {if (other null) return 1;// 降序排序return other.money.CompareTo(this.money); }2、 直接实现 IComparable 接口不推荐 如果你的类不使用泛型接口IComparableT你也可以使用非泛型的 IComparable 接口来实现排序 public class Item : IComparable {public int Money { get; set; }public Item(int money){Money money;}// 实现 IComparable 接口的 CompareTo 方法public int CompareTo(object obj){if (obj null) return 1;Item other obj as Item;if (other null) throw new ArgumentException(Object is not an Item);return this.Money.CompareTo(other.Money); // 默认升序排序} }这种方式的缺点是需要处理类型转换as 或者显式转换并且代码更加冗长。一般情况下推荐使用泛型 IComparableT。 3、通过委托函数进行自定义排序 可以通过传入自定义的比较方法委托来进行排序。此时我们定义一个静态方法并作为参数传入 到Sort() 方法进行排序。 返回值规则和之前一样 0做标准 负数在左前 正数在右后 1示例 using System;public class ShopItem {public int id;public ShopItem(int id){this.id id;} }class Program {static int SortShopItem(ShopItem a, ShopItem b){return a.id.CompareTo(b.id); // 升序// return b.id.CompareTo(a.id); // 降序}static void Main(){ListShopItem shopItems new ListShopItem{new ShopItem(2),new ShopItem(1),new ShopItem(4),new ShopItem(3),new ShopItem(6),new ShopItem(5)};shopItems.Sort(SortShopItem); // 使用委托排序// 输出排序后的结果foreach (ShopItem item in shopItems){Console.WriteLine(item.id);}} }输出 1 2 3 4 5 62使用匿名方法Delegate简化 我们也可以使用匿名方法Delegate进行排序。这种方法比较灵活但代码可能会显得比较长 using System;public class ShopItem {public int id;public ShopItem(int id){this.id id;} }class Program {static void Main(){ListShopItem shopItems new ListShopItem{new ShopItem(2),new ShopItem(1),new ShopItem(4),new ShopItem(3),new ShopItem(6),new ShopItem(5)};shopItems.Sort(delegate (ShopItem a, ShopItem b){return a.id.CompareTo(b.id); // 升序// return b.id.CompareTo(a.id); // 降序});// 输出排序后的结果foreach (ShopItem item in shopItems){Console.WriteLine(item.id);}} }3再使用 Lambda 表达式简化 Lambda 表达式可以让代码更加简洁。它是对委托的一种简化形式常用于排序操作。 shopItems.Sort((a, b) {return a.id.CompareTo(b.id); // 升序// return b.id.CompareTo(a.id); // 降序 });或者更简洁的形式 shopItems.Sort((a, b) a.id.CompareTo(b.id)); // 升序; //shopItems.Sort((a, b) b.id.CompareTo(a.id)); // 降序;三、总结 ListT.Sort() 方法可以直接排序常用类型如 int, double, string 等。对于自定义类型推荐实现 IComparableT 接口这样可以直接使用 Sort() 方法。如果不希望修改类本身也可以通过传入委托函数、匿名方法或 Lambda 表达式来进行排序。对于需要降序排序的情况可以调整 CompareTo 方法的返回值或者在委托中修改比较逻辑。 专栏推荐 地址【从零开始入门unity游戏开发之——C#篇】【从零开始入门unity游戏开发之——unity篇】【制作100个Unity游戏】【推荐100个unity插件】【实现100个unity特效】【unity框架开发】 完结 赠人玫瑰手有余香如果文章内容对你有所帮助请不要吝啬你的点赞评论和关注你的每一次支持都是我不断创作的最大动力。当然如果你发现了文章中存在错误或者有更好的解决方法也欢迎评论私信告诉我哦 好了我是向宇https://xiangyu.blog.csdn.net 一位在小公司默默奋斗的开发者闲暇之余边学习边记录分享站在巨人的肩膀上通过学习前辈们的经验总是会给我很多帮助和启发如果你遇到任何问题也欢迎你评论私信或者加群找我 虽然有些问题我也不一定会但是我会查阅各方资料争取给出最好的建议希望可以帮助更多想学编程的人共勉~
http://www.hkea.cn/news/14506882/

相关文章:

  • 杂谈发现一只网站是你们谁做的代理企业网站备案
  • 广东省建网站公司面向搜索引擎网站建设
  • 网站建设建站在线建站网站免费推广大全
  • 深圳企业网站建设服务好网站多少钱
  • 个人网站如何做支付功能厦门市建设工程安全质量协会网站
  • 潍柴新建站登录网址现在建网站多少钱
  • 以数字域名为网址的网站成都专业网站制作哪家好
  • dz可以做门户网站吗开发公司把已经出售的房子一房二卖卖给股东个人
  • 淘宝做链接的网站手机网站会员识别功能
  • 网站开发手册下载小程序可做网站吗
  • 网站建设的维护与更新google官方下载安装
  • 从用户旅程角度做网站分析wordpress 中文摘要
  • 贵阳网站建设公司排名wordpress搭建问题
  • 小米的网站是哪个公司做的asp做的网站亚丝娜娜本子全彩
  • 网站是每年都要付费吗网站设置主网
  • 湘潭网站建设出色磐石网络wordpress如何屏蔽特定国家的用户
  • 学校网站网页设计湛江建设培训学校网站
  • 快手里做网站荣耀封面的视频微信服务号开发方案
  • 手机网站页面布局深圳商业网站建设
  • 网站推广智选刺盾云下拉家装公司名称大全
  • 做调查的有哪些网站公司网站cms
  • 奎屯网站制作做服装加工哪个网站比较好
  • 住房和城市建设部网站免备案虚拟主机空间
  • 外贸自建站是什么意思中学生做的网站有哪些
  • asp.net mvc5网站开发之美北京php网站开发
  • 网站下载器网站如何免费推广
  • 企业网站建设排名价格网站收录查询平台
  • 英文网站制作手机网站不收录
  • 网站建设收费标准公司南部县网站建设
  • 沧州市网站建设公司cms做视频网站