List<T>.Sort() 排序的用法
List<T> 可以通过 .Sort()进行排序,但是当 T 对象为自定义类型时(比如自定义模型),就需要 IComparable接口重写其中的方法来实现,实现代码如下:
class Program
{
static Func<Model, int> where = a => a.id;
static Func<Model, bool> wherelambda = a => a.id < ;
static void Main(string[] a)
{
List<Model> result = GetData().ToList();
result.Sort(); //排序
} /// <summary>
/// 拼装数据
/// </summary>
/// <returns></returns>
#region
public static IList<Model> GetData()
{
IList<Model> list = new List<Model>();
for (int i = ; i <= ; i++)
{
Model model = new Model();
model.id = i;
model.Name = "名字" + i;
model.Email = string.Format("12345@QQ{0}.com.cn", i);
list.Add(model);
}
return list;
}
#endregion
} /// <summary>
/// 自定义模型 一定要继承 IComparable<T>接口
/// </summary>
public class Model : IComparable<Model>
{
public int id { get; set; } private int Sex { get; set; } public string Name { get; set; } public DateTime? BirthDate { get; set; } public string Email { get; set; } public string Phone { get; set; } public int CompareTo(Model model)
{
if (model.id == id && model.Name.Equals(Name))
return ;
else
{
if (id > model.id)
{
return -;
}
if (Name.CompareTo(model.Name) > )
{
return -;
}
else
return ;
} }
}
如果不继续IComparable接口,也可以直接在 .Sort()方法里面写,代码如下:
class Program
{
static Func<Model, int> where = a => a.id;
static Func<Model, bool> wherelambda = a => a.id < ;
static void Main(string[] a)
{
List<Model> result = GetData().ToList();
result.Sort((a,b)=>{
if (b.id == a.id && b.Name.Equals(a.Name))
return ;
else
{
if (a.id > b.id)
{
return -;
}
if (a.Name.CompareTo(b.Name) > )
{
return -;
}
else
return ;
}
}); //排序
}
按照功能排序:List<T> < IList<T> < ICollection<T> < IEnumerable<T>
按照性能排序:IEnumerable<T> < ICollection<T> < IList<T> < List<T>
List<T>.Sort() 排序的用法的更多相关文章
- js数组之sort排序的用法
sort排序 转载自:https://blog.csdn.net/idomyway/article/details/80544509 js中用方法sort()为数组排序.sort()方法有一个可选参数 ...
- C++ 中的sort()排序函数用法
sort(first_pointer,first_pointer+n,cmp) 该函数可以给数组,或者链表list.向量排序. 实现原理:sort并不是简单的快速排序,它对普通的快速排序进行了优化,此 ...
- msdn List sort排序 IComparable 用法
using System;using System.Collections.Generic;using System.Linq;using System.Text; namespace Console ...
- C#之IComparable用法,实现List<T>.sort()排序
这篇文章主要介绍了C#的一些基础知识,主要是IComparable用法,实现List<T>.sort()排序,非常的实用,这里推荐给大家. List<T>.sort()可以 ...
- JS基础篇--sort()方法的用法,参数以及排序原理
JS基础篇--sort()方法的用法,参数以及排序原理 sort() 方法用于对数组的元素进行排序,并返回数组.默认排序顺序是根据字符串Unicode码点.语法:arrayObject.sort( ...
- js sort() 排序用法(转载)
原文:https://blog.csdn.net/m0_37885651/article/details/80016718 sort() 方法用于对数组的元素进行排序,并返回数组.默认排序顺序是根据字 ...
- 反向输出及sort排序
建立条件:#include "algorithm"引用这个头文件 1.reverse 的用法,反向排序,由自己输入5个数: 1 2 3 4 5 for (int i = 0; i ...
- javascript:算法之数组sort排序
数组sort排序 sort比较次数,sort用法,sort常用 描述 方法sort()将在原数组上对数组元素进行排序,即排序时不创建新的数组副本.如果调用方法sort()时没有使用参数,将按字母顺序( ...
- 数组Array.sort()排序的方法
数组sort排序 sort比较次数,sort用法,sort常用 描述 方法sort()将在原数组上对数组元素进行排序,即排序时不创建新的数组副本.如果调用方法sort()时没有使用参数,将按字母顺序( ...
随机推荐
- IDA Script: Remove empty auto labels
http://simeonpilgrim.com/blog/2010/03/25/ida-script-remove-empty-auto-labels/ #include <idc.idc&g ...
- Active Low-Pass Filter Design 低通滤波器设计
2nd order RC Low-pass Filter Center frequency fc = 23405.13869[Hz] Q factor Q = ...
- 终于可以发布Delphi下收点OSGI精髓皮毛而设计的插件框架WisdomPluginFramework
这是一个Delphi实现的插件框架,我耗费了相当相当相当多的精力来设计她,虽然仅闪着点我微薄智慧的光芒,但我还是决定用Wisdom来命名她,也因它是我绝无仅有的,在完成1年多后回头来看仍能相当满意的作 ...
- CentOS 6.5 源码安装MySQL5.6
1:下载安装cmake (mysql5.5以后是通过cmake来编译的) #http://download.csdn.net/detail/csxuedn/7976005 #wget http://w ...
- [Jobdu] 题目1497:面积最大的全1子矩阵
题目描述: 在一个M * N的矩阵中,所有的元素只有0和1,从这个矩阵中找出一个面积最大的全1子矩阵,所谓最大是指元素1的个数最多. 输入: 输入可能包含多个测试样例.对于每个测试案例,输入的第一行是 ...
- Java编程规范实践
一个好的编程规范可以让代码易于理解,具体的操作却不必如此麻烦. 本文包含以下内容: Eclipse Java代码Formatter配置 Eclipse 代码模板配置 自动添加Javadoc注释 附录: ...
- 微信公共服务平台开发(.Net 的实现)7-------发送图文消息
之前我们讲过让微信发送给我们普通的文本信息,下面我们来看看如何发送图文信息,需要注意的是这里说的是,让微信发给我们,而不是我们拍个图片发给微信处理,我们上传图片在以后的章节介绍.下面是发送图文消息的函 ...
- android获取/更改gps和WIFI状态
一.WIFI状态的获取和更改 适用于 SDK1.0 , SDK1.5 1.获取WIFI状态 方法1:通过WifiManager进行操作 1WifiManager wifiManager = (Wifi ...
- HDU 1504 Disk Tree
转载请注明出处:http://blog.csdn.net/a1dark 分析:查了一下这题.发现网上没有什么关于这道题的解题报告.其实题目意思挺好懂的.就是给你一些文件的目录结构.然后让你把它们组合在 ...
- vm.dirty_background_ratio and vm.dirty_ratio
http://hellojava.info/?p=264&utm_source=tuicool&utm_medium=referral 解决磁盘io紧张的一种临时方法 有些时候可能会碰 ...