IComparer 自定义 比较
来源:互联网 发布:网络安全工程师多少钱 编辑:程序博客网 时间:2024/06/05 10:20
先说需求 把一数字字符串(例“123”)按数字排序
“1”,“02”,“21” ,“3”,“11”,“10”,“a-1”
排序数字排序后为
“1”,“02”,“3”,“10”,“11”,“21” ,“a-1”
public class MySort : IComparer<string> { int IComparer<string>.Compare(string x, string y) { return Compare(x, y); } private int Compare(string x, string y) { int a = 0; int b = 0; if (Int32.TryParse(Path.GetFileNameWithoutExtension(x), out a) && Int32.TryParse(Path.GetFileNameWithoutExtension(y), out b)) { int c = a - b; if (c == 0) { return string.Compare(x, y, true); } return c; } else { return string.Compare(x, y, true); } } }
之前用了 try catch 做判断 速度 就慢了许多
public class MySort : IComparer<string> { int IComparer<string>.Compare(string x, string y) { return Compare(x, y); } private int Compare(string x, string y) { try { int a = Convert.ToInt32(Path.GetFileNameWithoutExtension(x)); int b = Convert.ToInt32(Path.GetFileNameWithoutExtension(y)); int c = a - b; if (c == 0) { return string.Compare(x, y, true); } return c; } catch (Exception) { return string.Compare(x, y, true); } } }
0 0
- IComparer 自定义 比较
- Collection -> 由IComparer派生的自定义比较器
- Collection -> 由IComparer派生的自定义比较器
- Collection -> 由IComparer派生的自定义比较器
- IComparer IComparable比较大小
- c# IComparer比较字符串
- 自定义排序 IComparer.Compare
- [C#]简单重写IComparer接口,实现自己的String.CompareTo 方法,自定义比较规则。
- IComparer<T>:Linq比较接口
- C#比较器接口IComparer的实现
- IComparable IComparer 比较器实例与使用
- [泛型]-泛型接口IComparer——比较器
- C#泛型-泛型接口IComparer比较器
- 对象的比较与排序:IComparable和IComparer接口
- 对象的比较与排序:IComparable和IComparer接口
- IComparable 和IComparer 接口实现数组的自定义排列
- C# 使用IComparer自定义List类的排序方案
- C# 使用IComparer自定义List类的排序方案
- Github和Apache Tomcat
- Apache status 配置以及怎么查看apache-status
- win7桌面不能自动刷新
- C++中explicit关键字的作用
- 阿里巴巴笔试题
- IComparer 自定义 比较
- Windows系统下Apache性能优化,提高并发
- 线性表 删除相同节点
- Matlab 统一赋值问题
- linux 常用指令
- 最近忙疯了
- linux grep命令
- 20140414收盘小结
- jQuery的cookie插件实现保存用户的数据