c# 内部类使用接口IComparer实现排序
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实现排序的更多相关文章
- SortedMap接口:进行排序操作。
回顾:SortedSet是TreeSet的实现接口,此接口可以排序. SortedMap接口同样可以排序,是TreeMap的实现接口,父类. 定义如下: public class TreeMap< ...
- 新的IRepository接口+搜索和排序解耦(+基于Castle实现)
新的IRepository接口+搜索和排序解耦(+基于Castle实现) 经过了上篇IRepository和IRepository<T>的讨论[文章地址为:http://www.cnblo ...
- C# 中 List.Sort运用(IComparer<T>)排序用法
/// <summary> /// 比较人物类实例大小,实现接口IComparer /// </summary> public class InternetProtocolCo ...
- “全栈2019”Java第八十三章:内部类与接口详解
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- C#利用iComparable接口实现List排序
List<T>类可以使用Sort()方法对元素排序. Sort()方法定义了几个重载方法,分别是 public void List<T>.Sort(),不带有任何参数的Sor ...
- java内部类、接口、集合框架、泛型、工具类、实现类
.t1 { background-color: #ff8080; width: 1100px; height: 40px } 一.内部类 1.成员内部类. (1)成员内部类的实例化: 外部类名.内部类 ...
- Java语言简介、基础组成、封装、继承、多态、抽象类、内部类、接口
目录 Java简介 Java语言基础组成 面向对象 对象 封装 构造函数 this关键字 static(静态关键字) 主函数 静态什么时候用呢? 面向对象(数组工具对象建立) 设计模式 继承 成员变量 ...
- MongoDB学习笔记~为IMongoRepository接口添加了排序和表达式树,针对官方驱动
回到目录 MongoDB的官方驱动,语法更好,更强 之前写过关于IMongoRepository仓储的文章,在mongodb的驱动选择上使用了NoRM,但是进行$ref引用类型导航时出现了问题,它对引 ...
- 泛型IComparer<T>排序
class Program { static void Main(string[] args) { GetListTest(); } private static void GetListTest() ...
随机推荐
- 参数化--每个vuser使用不同的参数值
使用controller并发时,每个vuser从参数文件中取一个值,设置如下图:
- java继承机制
1 继承 关键字:extends java没有多重继承 实例 父类: package unit4; public class Base { public int publicVarofBase= ...
- ex:0602-169 遇到不完整或无效的多字节字符,转换失败
错误原因:在AIX系统中,用vi命令编辑文件,出现rt错误,是因为AIX系统不识别文件编码格式. 解决方法:建议重新新建一个编码格式为ASC的文件,再重新上传到AIX系统中,或者改变访问linux的客 ...
- VS中去除SrouceControl的信息
如果在不连接TFS的情况下,编辑一个已经source control的solution,总是会有烦人的提示信息.如果你确定不再需要source control,可以这么干. Here is how t ...
- 本地调试远程api tag
当你在本地开发js且需要跨域调用远程接口的时候.可按照下列步骤设置你的chrome. 1.创建chrome快捷方式. 2.右键属性新的快捷方式,在目标一栏后面追加 "--args ...
- 访问 JavaBean 对象的属性
在 <jsp:useBean> 标签主体中使用 <jsp:getProperty/> 标签来调用 getter 方法,使用 <jsp:setProperty/> 标 ...
- mac os 10.10.4 上安装mysql5.6.26
在 Mac 系统上, 安装 MySQL Server 通常是用 DMG 包在图形化界面下按提示安装, 此外 MySQL 还提供了 Compressed TAR Archive 二进制包安装方式, 即免 ...
- [NSDate distantPast]使用
本文转载至 http://blog.sina.com.cn/s/blog_5f1967e00101ge0i.html 使用下面的方法: 关闭定时器不能使用invalidate方法,应该使用下面的方法 ...
- ViewPager页面切换特效
ViewPager页面切换特效如下效果 看效果: 效果1: 效果2: 下面就开始讲解如何实现这两个页面翻转效果 1.首先你得会ViewPager控件的使用(废话!现在还有人不会使用吗???!!) 2. ...
- Win7 +Cuda9.0+cudnn7.0.5 tensorflow-gpu1.5.0 安装实战
https://blog.csdn.net/gangeqian2/article/details/79358543 https://blog.csdn.net/tomato_sir/article/d ...