• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C#:Array类的排序

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

Array类实现了对数组中元素的冒泡排序。Sort()方法需要数组中的元素实现IComparable接口。

  • System.String和System.Int32实现了IComparable接口,所以可以直接对包含这些类型的元素排序
1             string[] names = { "Mike Lissick", "Mark Allen", "John Dixon", "Greg" };
2             Array.Sort(names);
3             foreach (string name in names)
4             {
5                 Console.WriteLine(name);
6                 Console.ReadLine();
7             }

输出:

  • 如果对数组使用定制的类,就必须实现IComparable接口(这个接口只定义了一个方法CompareTo(),如果要比较的对象相等,该方法就返回0,如果实例应排在参数对象的前面,该方法就返回小于0的值,反之则返回大于0的值)。
 1 using System;
 2 
 3 namespace ConsoleApplication4
 4 {
 5     class Program
 6     {
 7         static void Main(string[] args)
 8         {
 9             Person[] beatles = { new Person("Mike", "Lissick"), new Person("Mark", "Allen"), new Person("John", "Dixon") };
10             Person[] beatlesClone = (Person[])beatles.Clone();
11             Array.Sort(beatles);
12             foreach (Person p in beatles)
13             {
14                 Console.WriteLine(p);
15                 Console.ReadLine();
16             }
17         }
18     }
19 
20     public class Person:IComparable
21     {
22         public int CompareTo(object obj)
23         {
24             Person other = obj as Person;
25             int result = this.LastName.CompareTo(other.LastName);
26             if (result == 0)
27             {
28                 result = this.FirstName.CompareTo(other.FirstName);
29             }
30             return result;
31         }
32 
33         public Person()
34         { }
35 
36         public Person(string firstName, string lastName)
37         {
38             this.FirstName = firstName;
39             LastName = lastName;
40         }
41 
42         public string FirstName { get; set; }
43         public string LastName { get; set; }
44         public override string ToString()
45         {
46             return String.Format("{0} {1}", FirstName, LastName);
47         }
48     }
49 }

输出(按照Lastname排序的姓名):

 

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C#Dictionary判断Key是否存在发布时间:2022-07-13
下一篇:
C#将16位二进制转换为有符号数发布时间:2022-07-13
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap