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() 排序的用法的更多相关文章

  1. js数组之sort排序的用法

    sort排序 转载自:https://blog.csdn.net/idomyway/article/details/80544509 js中用方法sort()为数组排序.sort()方法有一个可选参数 ...

  2. C++ 中的sort()排序函数用法

    sort(first_pointer,first_pointer+n,cmp) 该函数可以给数组,或者链表list.向量排序. 实现原理:sort并不是简单的快速排序,它对普通的快速排序进行了优化,此 ...

  3. msdn List sort排序 IComparable 用法

    using System;using System.Collections.Generic;using System.Linq;using System.Text; namespace Console ...

  4. C#之IComparable用法,实现List<T>.sort()排序

    这篇文章主要介绍了C#的一些基础知识,主要是IComparable用法,实现List<T>.sort()排序,非常的实用,这里推荐给大家.   List<T>.sort()可以 ...

  5. JS基础篇--sort()方法的用法,参数以及排序原理

    JS基础篇--sort()方法的用法,参数以及排序原理   sort() 方法用于对数组的元素进行排序,并返回数组.默认排序顺序是根据字符串Unicode码点.语法:arrayObject.sort( ...

  6. js sort() 排序用法(转载)

    原文:https://blog.csdn.net/m0_37885651/article/details/80016718 sort() 方法用于对数组的元素进行排序,并返回数组.默认排序顺序是根据字 ...

  7. 反向输出及sort排序

    建立条件:#include "algorithm"引用这个头文件 1.reverse 的用法,反向排序,由自己输入5个数: 1 2 3 4 5 for (int i = 0; i ...

  8. javascript:算法之数组sort排序

    数组sort排序 sort比较次数,sort用法,sort常用 描述 方法sort()将在原数组上对数组元素进行排序,即排序时不创建新的数组副本.如果调用方法sort()时没有使用参数,将按字母顺序( ...

  9. 数组Array.sort()排序的方法

    数组sort排序 sort比较次数,sort用法,sort常用 描述 方法sort()将在原数组上对数组元素进行排序,即排序时不创建新的数组副本.如果调用方法sort()时没有使用参数,将按字母顺序( ...

随机推荐

  1. 用java写一个web服务器

    一.超文本传输协议 Web服务器和浏览器通过HTTP协议在Internet上发送和接收消息.HTTP协议是一种请求-应答式的协议——客户端发送一个请求,服务器返回该请求的应答.HTTP协议使用可靠的T ...

  2. 修改ThinkSNS网站入口

    1.先设置游客访问的黑/白名单,不需要开放的,可以注释掉.通过修改acesss.php文件. 2.修改OpenSociax.php文件实现.

  3. 开发过程中常用的Linux命令

    做Java开发好几年了,部署JavaWeb到服务器上,一般都选择Linux,Linux作为服务器真是不二之选,高性能,只要熟悉Linux,操作快捷,效率很高. 总结一下工作中常用的Linux命令备忘: ...

  4. 图片原理解说(综合版:JPEG,PNG,BMP,GIF)

    JPEG: 首先说明 jpeg图片:JPEG是joint Photographic Experts Group(联合图像专家组)的缩写,文件后辍名为".jpg"或".jp ...

  5. 设置AD用户属性

    设置AD用户属性proxyaddresses的值 $test01 = [adsi]"LDAP://cn=test01,ou=oo,ou=admins,dc=ddv,dc=com" ...

  6. 【工作记录】c#操作win7注册表

    这里讲一 C# 小列子(高手请绕过此地! ), 我们平时都是在xp开发比较多...不过现在很多开发人员也在win7下开发了. 下面是在 LocalMachine 下的 一下注册表操作 ,就不详说了 p ...

  7. C#后台程序与HTML页面中JS方法互调(功能类似于Ajax中的DWR)

    此方法适用于 C#中嵌入WebBrowser(浏览器) 通过浏览器中加载的页面与C#的后台代码进行交互. 一.C#程序 1.在C#窗体中添加WebBrowser(浏览器),将页面的URL添加到浏览器中 ...

  8. RosettaNet

    RosettaNet 这一名字源自于 1799 年在埃及发现的 Rosetta Stone .这要追溯到公元前 196 年,该石头是在 Rosetta (Rashid) 镇附近被人发现的,上面用两种不 ...

  9. QT 操作oracle数据库遇到的问题

    一.首先参考官方文档: http://qt-project.org/doc/qt-4.8/sql-driver.html#qoci 二.编译驱动: http://www.tuicool.com/art ...

  10. Collections.sort(List<T> Comparator) 自定义排序

    Collections.sort(basicinfoList, new Comparator<MlisBasicinfo>() { @Override public int compare ...