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

湖寮做网站wordpress恋月

湖寮做网站,wordpress恋月,做app好 还是讯网站好,深圳网站建设黄浦网络-技术差C#知识&#xff1a;List排序 默认排序往往不够用&#xff0c;学会自定义排序很重要。 1、默认排序 只有少数类型能用&#xff0c;例如值类型int、float&#xff0c;double等默认升序 //系统自带排序 List<int> list new(); list.Add(5); list.Add(8); list.Add(1); li…

C#知识:List排序

默认排序往往不够用,学会自定义排序很重要。


1、默认排序

  • 只有少数类型能用,例如值类型int、float,double等
  • 默认升序
//系统自带排序
List<int> list = new();
list.Add(5);
list.Add(8);
list.Add(1);
list.Add(6);
list.Add(2);
Print<int>(list);   //5 8 1 6 2
//系统默认排序方法,默认升序
list.Sort();
Print<int>(list);   //1 2 5 6 8

2、实现IComparable接口

  • 重写CompareTo方法,实现排序逻辑
class Equipment:IComparable<Equipment>
{public string equipmentName;public int damage;public float price;public Equipment(string equipmentName, int damage, float price){this.equipmentName = equipmentName;this.damage = damage;this.price = price;}public int CompareTo(Equipment? other){if(this.price > other.price)return -1;else if(this.price < other.price)return 1;return 0;}public override string ToString(){return $" 【名称:{equipmentName}, 伤害:{damage}, 价格:{price}】";}
}
List<Equipment> equipments = new List<Equipment>();
equipments.Add(new Equipment("猎犬长牙", 58, 100));
equipments.Add(new Equipment("碎星大剑", 120, 500));
equipments.Add(new Equipment("陨石杖", 60, 300));
equipments.Add(new Equipment("黄铜盾", 0, 200));
//以实现接口方式:价格降序排序
equipments.Sort();  //不实现接口直接排序会报错Unhandled exception. System.InvalidOperationException: Failed to compare two elements in the array.
Print<Equipment>(equipments);//【名称:碎星大剑, 伤害:120, 价格:500】  【名称:陨石杖, 伤害:60, 价格:300】  【名称:黄铜盾, 伤害:0, 价格:200】  【名称:猎犬长牙, 伤害:58, 价格:100】

3、传递委托函数

  • 直接Sort方法传入委托函数参数
//Sort传入委托函数
//伤害升序
equipments.Sort((a, b) =>
{if (a.damage > b.damage)return 1;else if (a.damage < b.damage)return -1;return 0;
});
Print<Equipment>(equipments);//【名称:黄铜盾, 伤害:0, 价格:200】  【名称:猎犬长牙, 伤害:58, 价格:100】  【名称:陨石杖, 伤害:60, 价格:300】  【名称:碎星大剑, 伤害:120, 价格:500】

4、完整代码示例

namespace LearnListSort
{class Equipment:IComparable<Equipment>{public string equipmentName;public int damage;public float price;public Equipment(string equipmentName, int damage, float price){this.equipmentName = equipmentName;this.damage = damage;this.price = price;}public int CompareTo(Equipment? other){if(this.price > other.price)return -1;else if(this.price < other.price)return 1;return 0;}public override string ToString(){return $" 【名称:{equipmentName}, 伤害:{damage}, 价格:{price}】";}}internal class Program{static void Print<T>(List<T> list){foreach (T item in list){Console.Write(item.ToString() + " ");}Console.WriteLine();}static void Main(string[] args){//系统自带排序List<int> list = new();list.Add(5);list.Add(8);list.Add(1);list.Add(6);list.Add(2);Print<int>(list);   //5 8 1 6 2//系统默认排序方法,默认升序list.Sort();Print<int>(list);   //1 2 5 6 8List<Equipment> equipments = new List<Equipment>();equipments.Add(new Equipment("猎犬长牙", 58, 100));equipments.Add(new Equipment("碎星大剑", 120, 500));equipments.Add(new Equipment("陨石杖", 60, 300));equipments.Add(new Equipment("黄铜盾", 0, 200));//以实现接口方式:价格降序排序equipments.Sort();  //不实现接口直接排序会报错Unhandled exception. System.InvalidOperationException: Failed to compare two elements in the array.Print<Equipment>(equipments);//【名称:碎星大剑, 伤害:120, 价格:500】  【名称:陨石杖, 伤害:60, 价格:300】  【名称:黄铜盾, 伤害:0, 价格:200】  【名称:猎犬长牙, 伤害:58, 价格:100】//Sort传入委托函数//伤害升序equipments.Sort((a, b) =>{if (a.damage > b.damage)return 1;else if (a.damage < b.damage)return -1;return 0;});Print<Equipment>(equipments);//【名称:黄铜盾, 伤害:0, 价格:200】  【名称:猎犬长牙, 伤害:58, 价格:100】  【名称:陨石杖, 伤害:60, 价格:300】  【名称:碎星大剑, 伤害:120, 价格:500】}}
}

5、参考资料

  1. 《唐老狮C#》

本文结束,感谢您的阅读~

在这里插入图片描述

http://www.dtcms.com/a/527711.html

相关文章:

  • wordpress的知名网站郑州网络营销外包顾问
  • 徐州手机网站推广公司哪家好网站建设 环保素材
  • 网站优化包括整站优化吗在线电影网站建设论文
  • 住房城乡建设厅网站高港网站建设
  • uemo网站平台建设简单的购物网站模板
  • 网站开发公司排名泉州免费做网站
  • 网站建设实训总结300网站开发算什么费用
  • 自己做网站的成本wordpress无编辑器
  • wordpress建站如何微信企业it外包
  • 利用模板如何制作网站惠民网站建设
  • 电子商务网站建设主管的策划书Dw做html网站
  • vs做网站嘉兴秀洲区全网seo优化优惠
  • 不配置iis做网站linux下装wordpress
  • 建站工具免费中山网站制作建设
  • 门户网站建设推荐沈阳建网站电商
  • 河北网站设计公司松岗网站
  • 东莞哪家网站建设专业国内能用WordPress的服务器
  • 怎么做网站赚钱网站改版销售话术
  • 优化网站制作wordpress教学模板
  • 福州做网站外包热点事件舆情分析
  • 建设一个商业网站费用九龙坡网站建设
  • 银川网站建设nx110弄个直播平台大概要多少钱
  • 发布网站需要多少钱wordpress添加分类目录seo标题
  • 建设推广型网站中国建筑装饰网王凤波
  • 青岛哪家做网站的公司制作网页一般用什么来设计分割页面
  • 做网站用什么空间好开发定制软件
  • 仿素材下载网站源码做企业网站用php
  • 区块链技术网站开发网站开发包括网站的 等过程
  • 电影发布网站模板珠海教育局系统网站
  • 有没有专门建设网站的公司自己做网站要钱吗