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()时没有使用参数,将按字母顺序( ...
随机推荐
- Trapping Messages Sent to an Application
http://www.delphicorner.f9.co.uk/articles/apps7.htm Trapping Messages Sent to an Application I wrote ...
- iOS 蒙板,图片叠加显示漏空部分
懒惰了一个月了,今天写写项目里遇到的一个问题. 图片a 和图片b相互叠加,a图片四周是白色的不规则图形,里面填充黑色. b图片是一张正常图片. 需求是叠加在一起,要求将b图片根据a图片的黑色形状 扣出 ...
- Windows转到linux中,文件乱码,文件编码转换
最近,学习又重新开始Linux学习,所以一直在Centos中,昨天一朋友把他在Windows下写的C程序发给我,我欣然答应,本以为很快就能在我的Linux系统中运行起来.没想到出现了乱码,结果想把这个 ...
- 【S17】使用“swap技巧”除去多余的容量
1.考虑下面的需求,对于vec开始的时候有1000个元素,后来只有10个元素,那么vec的capacity至少还是1000,后面的990个内存单元,没有使用,但是还被vec霸占着.如何释放这些内存呢? ...
- ASP.NET中上传并读取Excel文件数据
在CSDN中,经常有人问如何打开Excel数据库文件.本文通过一个简单的例子,实现读取Excel数据文件. 首先,创建一个Web应用程序项目,在Web页中添加一个DataGrid控件.一个文件控件和一 ...
- BZOJ 1014: [JSOI2008]火星人prefix Splay+二分
1014: [JSOI2008]火星人prefix 题目连接: http://www.lydsy.com/JudgeOnline/problem.php?id=1014 Description 火星人 ...
- hdu 5272 Dylans loves numbers 水题
Dylans loves numbers Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem. ...
- Java中怎样由枚举常量的ordinal值获得枚举常量对象
Java1.5提供了关键字enum,能够通过该关键字方便得定义自己须要的枚举类型,比方 enum Season { SPRING, SUMMER, AUTUMN, WINTER } 就定义了一个季节枚 ...
- MS WORD 表格自己主动调整列宽,自己主动变美丽,依据内容自己主动调整
在MS WORD中,当有大量的表格出现时,调整每一个表格的的高和宽和大小将是一件很累的事情,拖来拖去,很耗时间,并且当WORD文档达到300页以上时,调整反应很的慢,每次拖拉线后,须要等待一段时间其才 ...
- 图片流Base64编码 转图片
using System; using System.Drawing; using System.Drawing.Imaging; using System.IO; using System.Web; ...