网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

IComparable类型排序接口

// 摘要: 

目前创新互联建站已为上1000家的企业提供了网站建设、域名、网站空间网站运营、企业网站设计、盐津网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

    //     定义一种特定于类型的通用比较方法,值类型或类通过实现此方法对其实例进行排序。

    [ComVisible(true)]

    public interface IComparable

    {

        // 摘要: 

        //     将当前实例与同一类型的另一个对象进行比较,并返回一个整数,该整数指示当前实

                //例在排序顺序中的位置是位于另一个对象之前、之后还是与其位置相同。

        //

        // 参数: 

        //   obj:

        //     与此实例进行比较的对象。

        //

        // 返回结果: 

        //     一个值,指示要比较的对象的相对顺序。返回值的含义如下:值含义小于零此实例小于             //obj。零此实例等于 obj。大于零此实例大于 obj。

        //

        // 异常: 

        //   System.ArgumentException:

        //     obj 不具有与此实例相同的类型。

        int CompareTo(object obj);

    }

备注:

    此接口由具有可排序值的类型实现。 它要求实现类型定义单个方法 CompareTo(Object),该方法指示当前实例在排序顺序中的位置是位于同一类型的另一个对象之前、之后还是与其位置相同。 实例的 IComparable 实现由 Array.Sort 和 ArrayList.Sort 等方法自动调用。CompareTo(Object) 方法的实现必须返回有三个值之一的 Int32,如下表中所示。

示例代码:(来自官方开发文档)

using System;
using System.Collections;
public class Temperature : IComparable 
{    // The temperature value
    protected double temperatureF;    
    public int CompareTo(object obj) {        
        if (obj == null) return 1;
        Temperature otherTemperature = obj as Temperature;        
        if (otherTemperature != null) 
            return this.temperatureF.CompareTo(otherTemperature.temperatureF);        
        else
           throw new ArgumentException("Object is not a Temperature");
    }    
    public double Fahrenheit 
    {        
        get 
        {            
            return this.temperatureF;
        }        
        set 
        {            
            this.temperatureF = value;
        }
    }    
    public double Celsius 
    {        
        get 
        {            
            return (this.temperatureF - 32) * (5.0/9);
        }        
        set 
        {            
            this.temperatureF = (value * 9.0/5) + 32;
        }
    }
}


public class CompareTemperatures
{   
    public static void Main()
   {
      ArrayList temperatures = new ArrayList();      // Initialize random number generator.
      Random rnd = new Random();      // Generate 10 temperatures between 0 and 100 randomly.
      for (int ctr = 1; ctr <= 10; ctr++)
      {         
         int degrees = rnd.Next(0, 100);
         Temperature temp = new Temperature();
         temp.Fahrenheit = degrees;
         temperatures.Add(temp);   
      }      // Sort ArrayList.
      temperatures.Sort();      
      foreach (Temperature temp in temperatures)
         Console.WriteLine(temp.Fahrenheit);

   }
}
// The example displays the following output to the console (individual
// values may vary because they are randomly generated):
//       2
//       7
//       16
//       17
//       31
//       37
//       58
//       66
//       72
//       95

若疑问可参看官方的开发者文档!


当前名称:IComparable类型排序接口
链接分享:http://bjjierui.cn/article/jsjggi.html

其他资讯