最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

深入IComparable與IComparer的排序?qū)嵗斀?/h1>
 更新時(shí)間:2013年06月09日 10:09:16   作者:  
本篇文章是對(duì)IComparable與IComparer的排序?qū)嵗M(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
如下所示:
復(fù)制代碼 代碼如下:

using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
namespace hgoApp
{
    class Comparer
    {
        static void Main()
        {
            Employee[] Employees = new Employee[5];

            Employees[0] = new Employee("張三", 2800);
            Employees[1] = new Employee("李四", 1800);
            Employees[2] = new Employee("王五", 5800);
            Employees[3] = new Employee("馬六", 12800);
            Employees[4] = new Employee("錢(qián)七", 8800);
            Console.WriteLine("按照姓名排序");
            Array.Sort(Employees);
            foreach (Employee em in Employees)
            {
                Console.WriteLine(em);
            }
            Console.WriteLine("按照薪水排序");
            Array.Sort(Employees, Employee.SalaryCom);
            foreach (Employee em in Employees)
            {
                Console.WriteLine(em);
            }
        }
    }
    class Employee : IComparable
    {
        private string _Name;
        public string Name
        {
            get { return _Name; }
        }
        private int _Salary;
        public int Salary
        {
            get { return _Salary; }
        }
        public Employee(string Name, int Salary)
        {
            _Name = Name;
            _Salary = Salary;
        }
        //顯示接口實(shí)現(xiàn)
        int IComparable.CompareTo(object obj)
        {
            if (!(obj is Employee))
            {
                throw new ArgumentException("不是Employee類(lèi)");
            }
            return _Name.CompareTo(((Employee)obj)._Name);
        }
        //提供一個(gè)公用的強(qiáng)類(lèi)型重載版本
        public int CompareTo(Employee Em)
        {
            return _Name.CompareTo(Em._Name);
        }
        //當(dāng)?shù)谝淮螌?shí)例化Employee的時(shí)候,_SalaryCom為空,當(dāng)使用SalaryCom時(shí),就會(huì)創(chuàng)建一個(gè)SalaryCompare對(duì)象,第2次,3次的時(shí)候,就可以直接使用_SalaryCom了
        private static SalaryCompare _SalaryCom = null;
        public static IComparer SalaryCom
        {
            get
            {
                if (_SalaryCom == null)
                {
                    _SalaryCom = new SalaryCompare();
                }
                return _SalaryCom;
            }
        }
        //嵌套類(lèi)(這個(gè)類(lèi)是針對(duì)薪水進(jìn)行排序的類(lèi))
        private class SalaryCompare:IComparer
        {
            //使用指定的IComparer對(duì)Array中的元素進(jìn)行排序
            int IComparer.Compare(object obj1,object obj2)
            {
                if (!(obj1 is Employee) || !(obj2 is Employee))
                {
                    throw new ArgumentException("不是Employee類(lèi)");
                }
                return ((Employee)obj1)._Salary.CompareTo(((Employee)obj2)._Salary);
            }
        }
        public override string ToString()
        {
            return _Name +"  "+ _Salary.ToString();
        }
    }
}

相關(guān)文章

  • c# 匿名方法的小例子

    c# 匿名方法的小例子

    c# 匿名方法的小例子,需要的朋友可以參考一下
    2013-04-04
  • C#中Override關(guān)鍵字和New關(guān)鍵字的用法詳解

    C#中Override關(guān)鍵字和New關(guān)鍵字的用法詳解

    這篇文章主要介紹了C#中Override關(guān)鍵字和New關(guān)鍵字的用法,需要的朋友可以參考下
    2016-01-01
  • Linq兩個(gè)List集合取交集的實(shí)現(xiàn)

    Linq兩個(gè)List集合取交集的實(shí)現(xiàn)

    這篇文章主要介紹了Linq兩個(gè)List集合取交集的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • C#將異步改成同步方法示例

    C#將異步改成同步方法示例

    這篇文章主要為大家介紹了C#將異步改成同步方法示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • C# SQLite序列操作實(shí)現(xiàn)方法詳解

    C# SQLite序列操作實(shí)現(xiàn)方法詳解

    這篇文章主要介紹了C# SQLite序列操作實(shí)現(xiàn)方法,結(jié)合實(shí)例形式詳細(xì)分析了C#實(shí)現(xiàn)SQLite序列操作的具體步驟與相關(guān)操作技巧,需要的朋友可以參考下
    2017-07-07
  • C#中WPF依賴(lài)屬性的正確學(xué)習(xí)方法

    C#中WPF依賴(lài)屬性的正確學(xué)習(xí)方法

    這篇文章主要介紹了C#中WPF依賴(lài)屬性的正確學(xué)習(xí)方法 ,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-08-08
  • 教你C#將CSV轉(zhuǎn)為Excel的實(shí)現(xiàn)方法

    教你C#將CSV轉(zhuǎn)為Excel的實(shí)現(xiàn)方法

    這篇文章主要介紹了C#?將CSV轉(zhuǎn)為Excel,轉(zhuǎn)換之后可執(zhí)行更多關(guān)于數(shù)據(jù)編輯、格式設(shè)置等操作,代碼簡(jiǎn)單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2022-03-03
  • C#使用XmlDocument或XDocument創(chuàng)建xml文件

    C#使用XmlDocument或XDocument創(chuàng)建xml文件

    這篇文章主要為大家詳細(xì)介紹了C#使用XmlDocument或XDocument創(chuàng)建xml文件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-10-10
  • C#計(jì)算程序執(zhí)行過(guò)程花費(fèi)時(shí)間的方法

    C#計(jì)算程序執(zhí)行過(guò)程花費(fèi)時(shí)間的方法

    這篇文章主要介紹了C#計(jì)算程序執(zhí)行過(guò)程花費(fèi)時(shí)間的方法,涉及C#簡(jiǎn)單的時(shí)間運(yùn)算技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-09-09
  • Unity3D基于UGUI實(shí)現(xiàn)虛擬搖桿

    Unity3D基于UGUI實(shí)現(xiàn)虛擬搖桿

    這篇文章主要為大家詳細(xì)介紹了Unity3D基于UGUI實(shí)現(xiàn)虛擬搖桿,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-04-04

最新評(píng)論

宜章县| 沙坪坝区| 丽江市| 宁明县| 红桥区| 阿拉善盟| 虞城县| 内丘县| 哈尔滨市| 紫金县| 丰都县| 襄汾县| 德清县| 芜湖县| 壶关县| 凤冈县| 隆回县| 应城市| 永城市| 横峰县| 紫云| 兴宁市| 长宁区| 汶川县| 文水县| 安岳县| 门头沟区| 亚东县| 平泉县| 项城市| 观塘区| 荆门市| 永寿县| 聊城市| 库尔勒市| 措勤县| 酒泉市| 栖霞市| 汉阴县| 宁晋县| 尤溪县|