All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
实用技巧,利用Apache实现禁止图片盗链_php资料_编程技术
PHP5中新增加的日期
Repeater控件分页例子_[Asp.Net教程]
C#中GroupBox控件应用实例
delphi存储过程的使用实例
ASP.NET,3.5,扩展(预览版)介绍、下载和在线教程_[Asp.Net教程]
黑客攻破SQL服务器系统的十种方法_[SQL,Server教程]
C#中PrintDocument组件的方法使用实例
C#中Windows通用的回车转Tab方法_[Asp.Net教程]_0
asp.net在ie里调试_.net资料_编程技术
Reading number is top 10 pictures
Household design comfortable contracted
浴室里的美女
The money of more than 100 countries and regions8
Summer is most suitable for young people to travel in China4
随便发几张图
非笑不可:最强爆笑图片精选
The sixties of the last century, China is such a kill pig
Fan bingbing black wings for platform and DanLuoWang believes beauty2
yy365网站上的美女3
Summer is most suitable for young people to travel in China2
Download software ranking
Eclipse 4.2.1 For Win32
I'm come from Beijing1
Unix video tutorial8
dreamweaver8中文版
XML+Web+Service开发教程
c#程序设计案例教程
Boxer vs Yellow4
金山office2007
WebService在.NET中的实战应用教学视频 → 第5集
Red cliff
aaa published in(发表于) 2013/12/15 8:52:40 Edit(编辑)
如何用.NET,Array类的Sort方法分类数值_.net资料_编程技术

如何用.NET,Array类的Sort方法分类数值_.net资料_编程技术

如何用.NET Array类的Sort方法分类数值_.net资料_编程技术-你的首页-uuhomepage.com

  在前面的专栏中,我讨论了.NET数组的基本功能。本周,我们对这个主题进行扩充,着重讨论数组内容的分类。Array类提供了Sort方法,这个方法具有各种用途。我从简单的方法开始讨论,再以自定义分类结束。


  Sort方法


  使用Array类的静态Sort方法是分类数组内容的最简单方法。列表A通过对一组姓名进行分类,说明如何应用这个方法。


  它生成了下面的结果,它显示了调用分类方法前后的姓名列表:


  0. Howard, Ryan


  1. Allen, Ray


  2. Pujols, Albert


  3. Iverson, Allen


  0. Allen, Ray


  1. Howard, Ryan


  2. Iverson, Allen


  3. Pujols, Albert


  下面是对应的VB.NET代码:


  Dim x As Integer


  Dim names(3) As String


  names(0) = "Howard, Ryan"


  names(1) = "Allen, Ray"


  names(2) = "Pujols, Albert"


  names(3) = "Iverson, Allen"


  For x = 0 To (names.Length - 1)


  Console.WriteLine(CStr(x) + ". " + names(x).ToString())


  Next x


  Array.Sort(names)


  For x = 0 To (names.Length - 1)


  Console.WriteLine(CStr(x) + ". " + names(x).ToString())


  Next x


  Array类的Sort方法能够以各种形式对数组内容进行分类。既然你了解了这个方法的最简单应用形式,下面给出它的其它一些用途:


  Sort(Array, Array);根据第一个数组中的键对一对一维数组(一个包含键,另一个包含对应的项目)对象进行分类。


  Sort(Array, IComparable):用指定的Icomparable接口分类一个一维数组中的元素。


  Sort(Array, Array, IComparable):用指定的Icomparable接口根据第一个数组中的键对一对一维数组(一个包含键,另一个包含对应的项目)对象进行分类。


  Sort(Array, Integer, Integer):对一个一维数组指定起点与终点位置(整数值)的某个部分中的元素进行分类。


  Sort(Array, Array, Integer, Integer):根据第一个数组中的键对一对一维数组(一个包含键,另一个包含对应的项目)对象的某个部分进行分类。


  Sort(Array, Integer, Integer, IComparable):用指定的Icomparable接口对一个一维数组某一部分中的元素进行分类。


  Sort(Array, Array, Integer, Integer, IComparable):用指定的Icomparable接口根据第一个数组中的键对一对一维数组(一个包含键,另一个包含对应的项目)对象的某个部分进行分类。


  你可以应用Array类的默认行为对整个数组和一个数组的某个部分进行分类;你还可以通过一个特殊的Icomparable接口指定详细的分类方法。列表B中的例子使用了两个数组,一个数组包含键而另一个数组包含要分类的相应项目。它和增加键数组的第一个例子相同。


  得到的结果是根据键数组中的值分类的数组值(第二个数组在调用Sort方法时指定)。列表C中是对应的VB.NET代码。


  你可以对代码稍微进行一些调整,调用适当的Sort方法,使它只分类一个对象。下面的代码利用前一个例子,但只对数组中的第二和第三个元素进行分类。


  int[] keys = new int[4];


  keys[0] = 11;


  keys[1] = 3;


  keys[2] = 8;


  keys[3] = 5;


  string[] names = new string[4];


  names[0] = "Howard, Ryan";


  names[1] = "Allen, Ray";


  names[2] = "Pujols, Albert";


  names[3] = "Iverson, Allen";


  Array.Sort(keys, names, 1, 2);


  下面是对应的VB.NET代码:


  Dim keys(3) As Integer


  keys(0) = 11


  keys(1) = 3


  keys(2) = 8


  keys(3) = 5


  Dim names(3) As String


  names(0) = "Howard, Ryan"


  names(1) = "Allen, Ray"


  names(2) = "Pujols, Albert"


  names(3) = "Iverson, Allen"


  Array.Sort(keys, names, 1, 2)


  分类自定义对象


  虽然简单的Sort方法十分方便,但你不能使用它对自定义数据类型的数组进行自动分类。毕竟,你不能指望.NET平台了解所有建立的对象!但是,你仍然能够使用Icomparer或Icomparable接口说明自定义对象的分类方法。


  这些接口为你提供一个比较对象实例的方法,从而使分类更加方便。这两个接口的主要不同在于:在使用IComparable接口时必须把比较方法包括在类中,而使用Icomparer时则不必这样。两个接口的使用细节不在本文的讨论范围之内,不过下面我将用IComparable接口对一个自定义类数组进行分类。


  在列表D中,我利用IComparable接口处理分类逻辑和它的类。如代码所示,我建立了一个Person类。注意,它使用IComparable接口并(在分类时)用CompareTo方法来进行比较。


  在下一个例子中,建立一个Person数组对象时,又用到这个类。(IComparable接口所需要的)CompareTo方法是对Person类进行分类的关键,它将提交的对象与自身进行比较。接下来,再调用数组的Sort方法,利用Person类的分类机制,根据数组中每个对象的第一个名称属性进行其中的项目进行分类。列表E中是所使用且进行了分类的Person对象。列表F中是对应的VB.NET代码,它首先列出了Person类。


  各种选择


  任何数据似乎都要进行分类。毕竟,人们喜欢看到数据以逻辑方式显示。.NET的Array类提供了Sort方法,利用它的值或一个单独的关键值数组来简化数组内容的分类过程。另外,你还可以应用Icomparable接口之类的其它.NET功能进行自定义分类。





添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.