using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace 内部类使用接口实现排序
{
class Person
{
private string _name;
private int _age;
public Person(string name, int age)
{
_name = name;
_age = age;
}
public string Name
{
get { return _name; }
}
public int Age
{
get { return _age; }
}
private static AgeComparer _ageCom = null; //仅是一个静态变量。
public static IComparer<Person> AgeCom
{
get
{
if (_ageCom == null) //当第一次访问静态属性的时候,自动创建一个对象。
{
_ageCom = new AgeComparer();
}
return _ageCom;
}
}
private class AgeComparer : IComparer<Person>
{
int IComparer<Person>.Compare(Person x, Person y)
{
return x._age.CompareTo(y._age);
}
}
}
class Program
{
static void Main(string[] args)
{
Person[] p1 = new Person[];
p1[] = new Person("王亮", );
p1[] = new Person("张明敏", );
p1[] = new Person("孙晓峰", );
p1[] = new Person("赫敏", );
p1[] = new Person("刘铭", ); foreach (Person p in p1)
{
Console.WriteLine(p.Name + " " + p.Age.ToString());
}
Console.WriteLine("将对年龄进行排序并打印结果:");
Array.Sort(p1, Person.AgeCom);
foreach (Person p in p1)
{
Console.WriteLine(p.Name + " " + p.Age.ToString());
}
Console.ReadKey();
}
}
}

c# 内部类使用接口IComparer实现排序的更多相关文章

  1. SortedMap接口:进行排序操作。

    回顾:SortedSet是TreeSet的实现接口,此接口可以排序. SortedMap接口同样可以排序,是TreeMap的实现接口,父类. 定义如下: public class TreeMap< ...

  2. 新的IRepository接口+搜索和排序解耦(+基于Castle实现)

    新的IRepository接口+搜索和排序解耦(+基于Castle实现) 经过了上篇IRepository和IRepository<T>的讨论[文章地址为:http://www.cnblo ...

  3. C# 中 List.Sort运用(IComparer<T>)排序用法

    /// <summary> /// 比较人物类实例大小,实现接口IComparer /// </summary> public class InternetProtocolCo ...

  4. “全栈2019”Java第八十三章:内部类与接口详解

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  5. C#利用iComparable接口实现List排序

    List<T>类可以使用Sort()方法对元素排序. Sort()方法定义了几个重载方法,分别是  public void List<T>.Sort(),不带有任何参数的Sor ...

  6. java内部类、接口、集合框架、泛型、工具类、实现类

    .t1 { background-color: #ff8080; width: 1100px; height: 40px } 一.内部类 1.成员内部类. (1)成员内部类的实例化: 外部类名.内部类 ...

  7. Java语言简介、基础组成、封装、继承、多态、抽象类、内部类、接口

    目录 Java简介 Java语言基础组成 面向对象 对象 封装 构造函数 this关键字 static(静态关键字) 主函数 静态什么时候用呢? 面向对象(数组工具对象建立) 设计模式 继承 成员变量 ...

  8. MongoDB学习笔记~为IMongoRepository接口添加了排序和表达式树,针对官方驱动

    回到目录 MongoDB的官方驱动,语法更好,更强 之前写过关于IMongoRepository仓储的文章,在mongodb的驱动选择上使用了NoRM,但是进行$ref引用类型导航时出现了问题,它对引 ...

  9. 泛型IComparer<T>排序

    class Program { static void Main(string[] args) { GetListTest(); } private static void GetListTest() ...

随机推荐

  1. Window安装Anaconda后,conda不是内部或者外部命令

    今天在安装Theano的时候,需要看一下,anaconda已经安装了哪些包.使用命令如下,在控制台,cmd回车输入即可: conda list 但是,显示出错,“conda不是内部或者外部命令”,第一 ...

  2. Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed

    错误原因:常量.随机或者依赖时区的表达式不能作为分区函数. 解决方法:把ts列换成datetime类型,创建成功. CREATE TABLE T_log( id INT(11) NOT NULL AU ...

  3. UTF-8和GBK的区别

    GBK是在国家标准GB2312基础上扩容后兼容GB2312的标准(好像还不是国家标准).GBK编码专门用来解决中文编码的,是双字节的.不论中英文都是双字节的. UTF-8编码是用以解决国际上字符的一种 ...

  4. 更新换代----systemctl命令取代chkconfig和service

    systemctl命令是系统服务管理器指令,它实际上将 service 和 chkconfig 这两个命令组合到一起. 任务 旧指令 新指令 使某服务自动启动 chkconfig --level 3 ...

  5. [浪风分享] -- 系列百度云管家 V2.1.0 单文件版-分享必用的神器

    废话不多说,神器送上 百度云管家 V2.1.0 更新时间:2013年05月22日更新内容:1.支持云端文件管理:删除.重命名.新建文件夹.移动2.支持缩略图浏览模式3.支持三种文件排序方式:按修改时间 ...

  6. NetCore 中 EFcore的DbFirst和CodeFirst混合 使用注意

    NetCore 最近很火热.笔者想把自己以前的旧项目迁移到NetCore平台. 先用EFcore的DBFirst根据数据库创建实体类,然后加入数据库版本控制功能也就是EFcore的CodeFirst部 ...

  7. PowerDesigner 建模后如何导入到数据库

    from:https://jingyan.baidu.com/article/7f766daf465e9c4101e1d0d5.html 大家都知道PowerDesigner是一个数据库建模工具,但是 ...

  8. ASP.NET MVC 使用dataTable(3)--更多选项参考

    ASP.NET MVC 使用dataTable(3)--更多选项参考 jQuery  dataTables 插件是一个优秀的表格插件,是后台工程师的福音!它提供了针对数据表格的排序.浏览器分页.服务器 ...

  9. vfptr(2)

    //i_vptr struct i_vptr { ; }; //vptr.h #include "i_vptr.h" #include <iostream> class ...

  10. CodeIgniter框架——源码分析之Config.php

    CI框架的配置信息被存储在$config数组中,我们可以添加自己的配置信息或配置文件到$config中: $this->config->load('filename'); //加载配置文件 ...