做网站国家大学科技园郑州,织梦做的网站如何修改,安全协议书 网站开发公司,西安至成网站建设公司1.开发过程中#xff0c;会遇到OrderBy/OrderByDescending排序无法满足的情况#xff0c;此时就需要自定义排序#xff0c;按照想要的排序规则取排序#xff0c;比如订单的状态等等。
2.自定义泛型比较器代码如下#xff1a; /// summary/// 自定义泛型比较器(用…1.开发过程中会遇到OrderBy/OrderByDescending排序无法满足的情况此时就需要自定义排序按照想要的排序规则取排序比如订单的状态等等。
2.自定义泛型比较器代码如下 /// summary/// 自定义泛型比较器(用于自定义排序)/// /summarypublic class CustomComparerT : IComparerT{/// summary/// 排好的排序列表/// /summaryprivate ListT _preferenceList;/// summary/// 构造函数/// /summary/// param namepreferenceList排好的排序列表/parampublic CustomComparer(ListT preferenceList){_preferenceList preferenceList ?? new ListT();}/// summary/// 执行比较/// /summary/// param namex/param/// param namey/param/// returns/returnspublic int Compare(T x, T y){if (!_preferenceList.Any()){return DefaultCompare(x, y);}var index_x _preferenceList.IndexOf(x);var index_y _preferenceList.IndexOf(y);return index_x.CompareTo(index_y);}/// summary/// 默认比较/// /summaryprivate int DefaultCompare(T x, T y){return string.Compare(x.ToString(), y.ToString(), false, CultureInfo.CurrentCulture);}}3.使用(此处以自定义用户名称作为数组去排序):
var users new ListUser()
{new User() { Id 1,UserName 张三,Password 123456,Age 18,Sex 0},new User() { Id 2,UserName 李婷婷,Password 123456,Age 28,Sex 1},new User() { Id 3,UserName 王五,Password 123456,Age 19,Sex 0},new User() { Id 4,UserName 赵灵儿,Password 123456,Age 21,Sex 1},new User() { Id 5,UserName 韩企,Password 123456,Age 22,Sex 0},new User() { Id 6,UserName 宋华,Password 123456,Age 20,Sex 0},new User() { Id 7,UserName 王斌,Password 123456,Age 21,Sex 0}
};var orderbys new Liststring()
{李婷婷,赵灵儿,张三,王五,韩企,宋华,王斌
};var result users.AsQueryable().OrderByDescending(ss.UserName, new CustomComparerstring(orderbys));4.结果展示: