前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Dynamite动态排序库

Dynamite动态排序库

作者头像
张善友
发布2018-01-19 15:47:46
7570
发布2018-01-19 15:47:46
举报
文章被收录于专栏:张善友的专栏张善友的专栏

易于使用和高性能动态排序库支持类似 SQL 语法和嵌套/复杂的表达式,使用 System.Linq.Expression 动态生成快速比较器。

使用此库就可以使用文字的排序表达式对List<T>进行排序 :

代码语言:js
复制
List<Person> person;
person.Sort("Name.Length, BirthDate DESCENDING");

还可以使用 LINQ 一样的 OrderBy 这样:

代码语言:js
复制
foreach (Person p persons.OrderBy ("BirthDate.Year,Name")
 {
    Console.WriteLine(p.Name) ;
 } 

主要特点:

1 、易于使用:重写了已经存在的扩展方法Sort和OrderBy

2、高性能:由于使用Linq的动态编译的表达式

3、支持arrays, List<T>, IEnumerable<T>, IQueryable<T>和DataSet

4、支持所有的public 的属性和字段,包括Nullable类型

5、支持所有的引用类型(class)和值类型(struct)的字段和属性

6、支持嵌套的属性表达式,例如Mother.Name.Length

7、字符串大小写无关

8、开放式的设计:可以自己扩展Comparison<T> delegates, IComparer<T> 和非泛型的 IComparer 用于其它的排序场景。

项目地址:http://www.codeplex.com/dynamite

Dynamite 库设计的使用: Dynamite: High Performace Dynamic Sorting Using Expressions

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2008-10-09 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档