C#利用iComparable接口实现List排序
List<T>类可以使用Sort()方法对元素排序。
Sort()方法定义了几个重载方法,分别是
public void List<T>.Sort(),不带有任何参数的Sort方法
public void List<T>.Sort(Comparison<T>),带有比较代理方法参数的Sort方法
public void List<T>.Sort(IComparer<T>), 带有比较器参数的Sort方法
public void List<T>.Sort(Int32,Int32,IComparer<T>),带有比较起参数,可以指定排序范围的Sort方法
第一种方法必须继承IComparable<>接口,下面是示例代码:
// <copyright file="ServiceOfferingContent.cs" company="Deloitte">
// Copyright (c) Deloitte. All rights reserved.
// </copyright>
// <author>Haibin Chen</author>
// <email>Claudchen@Deloitte.com.cn</email>
// <date>2016-08-08</date>
// <summary>Entities used for connect WebParts and Lists content.</summary> using System;
using System.Collections.Generic;
using Deloitte.Gdc.KM.Utils; namespace Deloitte.Gdc.KM.WebParts.Entities
{
/// <summary>
/// Class ServiceOfferingContent.
/// </summary>
public class ServiceOfferingContent : IComparable<ServiceOfferingContent>
{ /// <summary>
/// Gets or sets the index.
/// </summary>
/// <value>The index.</value>
public string Index { get; set; } /// <summary>
/// Compares to.
/// </summary>
/// <param name="other">The other.</param>
/// <returns>System.Int32.</returns>
public int CompareTo(ServiceOfferingContent other)
{
if (other == null) return -;
if (Index.ToInt() > other.Index.ToInt())
{
return -;
}
return ;
}
}
}
C#利用iComparable接口实现List排序的更多相关文章
- 【转载】C#中自定义Sort的排序规则IComparable接口
C#中的List集合在排序的时候,如果不使用Lambda表达式进行排序的话,一般调用Sort()方法进行排序,如果希望Sort()方法排序后的结果跟我们预想的效果一致或者按照我们自定义的规则排序,则需 ...
- IComparable接口实现自定义类型的排序
IComparable接口实现自定义类型的排序 CompareTo(Object) 方法的实现必须返回有三个值之一 如下表中所示. 返回值 参数比较 大于0 x>y 等于0 x=y 小于0 ...
- 我的Java开发学习之旅------>Java利用Comparator接口对多个排序条件进行处理
一需求 二实现Comparator接口 三验证排序结果 验证第一条件首先按级别排序级别最高的排在前面 验证第二条如果级别相等那么按工资排序工资高的排在前面 验证第三条如果工资相当则按入职年数排序入职时 ...
- C# IComparable接口、IComparer接口和CompareTo(Object x)方法、Compare()方法
在项目中经常会用到字符串比较,但是有时候对字符串的操作比较多,规则各异.比如有的地方我们需要用排序规则,有的地方需要忽略大小写,我们该如何写一个比较容易操作的比较方法呢?重新实现IComparer接口 ...
- 这个匿名对象没有实现IComparable接口
https://www.cnblogs.com/felixnet/p/5193086.html https://docs.microsoft.com/zh-cn/dotnet/api/system.i ...
- 通过实现System.IComparable接口的CompareTo方法对两个类进行比较
假设现在有一个学生类 class Student { int age; public Student(int age) { this.age = age; } } 要使学生类之间能进行比较,实现Sys ...
- SortedMap接口:进行排序操作。
回顾:SortedSet是TreeSet的实现接口,此接口可以排序. SortedMap接口同样可以排序,是TreeMap的实现接口,父类. 定义如下: public class TreeMap< ...
- 利用脚本修改SQL SERVER排序规则
利用脚本修改SQL SERVER排序规则 编写人:CC阿爸 2014-3-1 l 今年的一项重要工作是对公司所用系统进行繁简的转换,程序转成简体基本很容易解决,但数据库转换成简体,就没那么容易了.经 ...
- 新的IRepository接口+搜索和排序解耦(+基于Castle实现)
新的IRepository接口+搜索和排序解耦(+基于Castle实现) 经过了上篇IRepository和IRepository<T>的讨论[文章地址为:http://www.cnblo ...
随机推荐
- JavaScript为select添加option,select选项变化时的处理,获取slelect被选中的值
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- ganglia安装简记
首先需要安装EPEL的源. yum install -y ganglia.x86_64 ganglia-gmetad.x86_64 ganglia-web.x86_64 ganglia-gmond.x ...
- 学习OpenStack之 (2):Cinder LVM 配置
0.背景 OpenStack 中的实例是不能持久化的,cinder服务重启,实例消失.如果需要挂载 volume,需要在 volume 中实现持久化.Cinder提供持久的块存储,目前仅供给虚拟机挂载 ...
- jquery之hasClass
看jquery的在线手册,hasClass的例子给的是这个 html部分: <div class="protected"></div><div> ...
- css3 border-radius
前缀对应浏览器 前缀 浏览器 -webkit chrome和safari -moz firefox -ms IE -o opera border-radius: <style type=&quo ...
- 150925-周五不干活-HTML(CSS),Javascript
不干活就干自己.. 今天所有代码总结为一个如下 <!DOCTYPE HTML><html><head><meta http-equiv="Conte ...
- viewTemplate
今天发现maya的属性编辑器界面似乎可以用xml来写,放在 /文档/maya/20xx/prefs这样的地方 发现一个很牛的maya插件SOuP,其中把一些近年论文的算法也集成进去了,网站在这里: h ...
- centos6下安装dedecms
几经波折,终于安装成功!!! 一.centos6下安装WDCP 1.连接linux 在百度直接搜索下载xshell,通过ssh连接 2.安装wdcp 下载安装wget http://dl.wdlinu ...
- 基于JSch的Sftp工具类
本Sftp工具类的API如下所示. 1)构造方法摘要 Sftp(String host, int port, int timeout, String username, String password ...
- 李学斌:论复杂系统中的应用间协作V3
说明 本文主要讨论了巨型复杂业务系统的一种构建思路,力图实现决策意志的快速.准确.一致的下传并简化实施成本提供实施效率.通过全业务领域的即时流程编排,实现全网业务IT系统的快速建设与迭代.本文所讲的方 ...