自定义排序方式

Posted 二狗

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自定义排序方式相关的知识,希望对你有一定的参考价值。

 

public class Custom_sort: IComparer<string>
{
List<string> _strs;
public Custom_sort(string[] strs)
{
_strs = strs.Distinct().ToList();
}
public int Compare(string x, string y)
{
if (x.Substring(x.Length - 2, 2) == y.Substring(y.Length - 2, 2))
{
return _strs.FindIndex(o => o.Equals(x.Substring(0, 2))) - _strs.FindIndex(o => o.Equals(y.Substring(0, 2)));
}
var defx = 0;
var defy = 0;
var xtrany= int.TryParse(x.Substring(x.Length - 2, 2), out defx);
var ytrany = int.TryParse(y.Substring(y.Length - 2, 2), out defy);
if (!xtrany && !ytrany)
{
return 0;
}
return defx - defy;
}
}

//需要写一个类  实现IComparer该接口的方法

 

 

DataTable dt = new DataTable();
dt.Columns.Add("Name");
dt.Rows.Add(new object[] { "SP15", });
dt.Rows.Add(new object[] { "SU16", });
dt.Rows.Add(new object[] { "SM16", });
dt.Rows.Add(new object[] { "AC1d", });
dt.Rows.Add(new object[] { "AC15", });
dt.Rows.Add(new object[] { "SM15", });
dt.Rows.Add(new object[] { "SP16", });
dt.Rows.Add(new object[] { "SU15", });
dt.Rows.Add(new object[] { "AC16", });
//dr.Fill(dt);

//调用一个Custom_sort类里的一个方法

//重写IComparer里的方法
var c = dt.AsEnumerable().OrderBy(o => o.Field<string>("Name"),coustOrder).CopyToDataTable();
var b = c;

以上是关于自定义排序方式的主要内容,如果未能解决你的问题,请参考以下文章

excel2013如何通过自定义排序方式来进行排序

list 怎么自定义排序

以编程方式在 Dojo Datagrid 中自定义列排序

Spark- 自定义排序

自定义排序方式

自定义类签发校验token-实现多方式登录-自定义反爬类-admin后台表管理字段自定义-群查接口-搜索-排序-分页