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

网站 留言 以邮件形式山东网站建设口碑好

网站 留言 以邮件形式,山东网站建设口碑好,网站后端性能优化措施,专业营销型网站定制1、使用List.Sort()对基本数值类型数据进行排序 案例:对存放int数据的List进行排序 其实C#中的List的Sort函数中的比较函数CompareTo有三种结果 1, -1 ,0分别代表大,小,相等。默认List的排序是升序排序。 举个例子:在比较函数Co…

1、使用List.Sort()对基本数值类型数据进行排序


案例:对存放int数据的List进行排序

其实C#中的List的Sort函数中的比较函数CompareTo有三种结果 1, -1 ,0分别代表大,小,相等。默认List的排序是升序排序。

举个例子:在比较函数CompareTo()中,如果 x>y return 1;则是按照升序排列。如果x>y return -1;则是按照降序排列。这就是1和-1大小的含义。其实你非要这么写 x<y return 1;则也表示降序排列。不过大家一般习惯x>y return 1;升序,如果想要降序只需return -1;即可。

Tips:系统List默认的排序是升序,如果你想要降序,可以直接在比较函数前面加个负号,把返回结果由1变成-1即可。例如:

List<int> list = new List<int>() { 2, 1, 3, 4, 5 };
list.Sort((x, y) => -x.CompareTo(y));	
for (int i = 0; i < list.Count(); i++)
{Console.Write(list[i] + " ");
}
Console.WriteLine();


2、使用List.Sort()对非数值类型、string、结构体、对象等或者官方未实现IComparable接口的类型进行排序


案例:
假设我们目前有一个Person类和存放Person类数据的List,如下

public class Person
{public int id;public string name;public Person(){id = 0;name = "name";}public Person(int id_, string name_){id = id_;name = name_;}}static void Main(string[] args)
{List<Person> list2 = new List<Person>();list2.Add(new Person(10001, "Tom"));list2.Add(new Person(10003, "Jerry"));list2.Add(new Person(10002, "Ben"));list2.Add(new Person(10005, "Cat"));list2.Add(new Person(10004, "Danny"));
}

假设我们现在的需求是将这个其按照id从小到大进行排序。
我们有两种办法:

方法一:实现IComparable接口重写CompareTo方法

代码:

public class Person : IComparable<Person>
{public int id;public string name;public Person(){id = 0;name = "name";}public Person(int id_, string name_){id = id_;name = name_;}public int CompareTo(Person obj_){if (this.id > obj_.id)return 1;elsereturn -1;}
}static void Main(string[] args)
{List<int> list = new List<int>() { 2, 1, 3, 4, 5 };list.Sort((x, y) => -x.CompareTo(y));for (int i = 0; i < list.Count(); i++){Console.Write(list[i] + " ");}Console.WriteLine();Console.WriteLine();List<Person> list2 = new List<Person>();list2.Add(new Person(10001, "Tom"));list2.Add(new Person(10003, "Jerry"));list2.Add(new Person(10002, "Ben"));list2.Add(new Person(10005, "Cat"));list2.Add(new Person(10004, "Danny"));// List.Sort自定义对象结构体排序规则的第一种办法:在类中实现IComparable接口list2.Sort();for (int i = 0; i < list2.Count(); i++){Console.WriteLine(list2[i].id + " " + list2[i].name);}Console.WriteLine();
}

方法二:编写一个排序规则的函数,调用LIst.Sort()时将其传入

代码:

public class Person
{public int id;public string name;public Person(){id = 0;name = "name";}public Person(int id_, string name_){id = id_;name = name_;}
}private static int CmpFun(Person a, Person b)
{if (a.id > b.id)return 1;elsereturn -1;
}static void Main(string[] args)
{List<Person> list2 = new List<Person>();list2.Add(new Person(10001, "Tom"));list2.Add(new Person(10003, "Jerry"));list2.Add(new Person(10002, "Ben"));list2.Add(new Person(10005, "Cat"));list2.Add(new Person(10004, "Danny"));// List.Sort自定义对象结构体排序规则的第二种办法:写一个排序的规则函数,将其传入list2.Sort(CmpFun);for (int i = 0; i < list2.Count(); i++){Console.WriteLine(list2[i].id + " " + list2[i].name);}Console.WriteLine();
}

请注意,在不带括号的情况下使用方法名称。 将方法用作参数会告知编译器将方法引用转换为可以用作委托调用目标的引用,并将该方法作为调用目标进行附加。

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

相关文章:

  • 网站开发获取报价做网站有什么意义
  • wordpress直接访问站点马蹄室内设计论坛
  • 云南网站推广石家庄新闻发布会直播
  • 查询网站有哪些导入链接及数量产品设计哪里好就业
  • 建设个人网站的参考网站及文献吉林省网络推广公司
  • win7怎么做网站服务器吗科技网站制作
  • php做网站用什么软件网站搭建东莞
  • 医生做网站不违法保定网站推广哪家好
  • 保定网站开发培训wordpress 下载官网
  • seo做得好的企业网站wordpress 执行sql update
  • 河南省建设资格注册中心网站大连网站建设流程图
  • 招商网站建设优势卖挂的网站怎么做
  • sns社交网站 建设文档网站开发外包售后维护合同范本
  • 做食品网站需要什么wordpress发送页面失败
  • 洛阳网站建设网站建设推广型网站建设软件
  • 山东好的网站建设排行榜台州房产网站建设
  • 食品购物网站建设北京做网站的公司拟
  • 安徽响应式网站推荐怎样查看一个网站是用什么开源程序做的
  • 深圳网站建设好不好网站建站报告2000字
  • iis7如何设置ip做网站中企动力科技股份有限公司重庆分公司
  • 开发设计移动网站建设有那种做订单的网站吗
  • 点击到达网站指定位置怎么做中国做二手房最大的网站
  • 地方门户类网站网站开源
  • 贵州省建设厅网站公众一体化平台鸿星尔克网络营销案例分析
  • 做爰全过程的视频网站dedecms 网站地图 插件
  • 网易建站模板网站ipv6建设
  • 网站开发关于安全问题温州seo推广公司
  • wordpress cross apple关键词优化的建议
  • 寻找网站建设员网页设计结束语
  • 湖南省住房和城乡建设厅老网站程序员开源网站