zoukankan      html  css  js  c++  java
  • 自定义排序方式

    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;

  • 相关阅读:
    动手动脑(类与对象作业再次提交)
    论团队(类与对象邮箱作业再次提交)
    流于形式的沟通
    加密
    string类中一些方法的使用
    StringEquals的用法
    命令行接收数字求和
    计算机思维
    SpringBoot之Callable处理异步请求
    MySQL8.0 zip版本 安装
  • 原文地址:https://www.cnblogs.com/xiaojian1/p/5542150.html
Copyright © 2011-2022 走看看