C#中的list的System.Predicate<in T>和System.Comparison<in T>的应用
2015-03-22 02:07
495 查看
publicclassData { publicintma=1; publicintmb=2; publicintmc=0; staticintcount=0; publicData() { count++; ma=count; } } //一句话删除满足要求的集合 Asm.RemoveAll((Datamd)=>{returnmd.ma%3==0?true:false;}); //等同于 Asm.RemoveAll(Need); boolNeed(Datamd) { if(md.ma%3==0) returntrue; else returnfalse; }
Asm.RemoveAll(System.Predicate<T>)传入其中的委托原型和System.Func<T,TR>是相同的,只是名字不同. Asm.RemoveAll(System.Comparison<inT>)传入其中的委托原型和System.Func<TX,TY,int>是相同的,只是名字不同.这个初一看,还很难理解为什么System.Comparison<inT>看起来只是传入了一个参数,但是实际对应的委托原型却是两个参数,这个只有靠记着了,而且是通过返回的数字值的正负来判断排序方式,比较抽象.
Asm.Sort((Datamx,Datamy)=>//该方法实现的是将Asm由大到小的排序 { if(mx.mb>my.mb)return-1;//返回-1表示mx被认定排序值小于my,所以排在前面 elseif(mx.mb<my.mb)return1;//返回1表示mx被认定排序值大于my,所以排在后面. elsereturn0; });
相关文章推荐
- 对象的比较与排序(七):对泛型列表进行排序和搜索:Comparison<T>和Predicate<T>的应用
- lwj_C#_作业 List<T>应用
- Scala学习整理[第十六章 List应用与排序算法]<Programming In Scala>
- C# List<T>用法
- C# List<string> 的Contains方法 是区分大小写的
- C#中的[],Array,List<>,ArrayList的区别
- C# List<T>用法
- C# List<T> Contains<T>()的用法小结
- 深入理解 c# 第一章 使用IComparer<Product> 对 List<Product> 进行排序
- C#将DataTable转化为List<T>
- C# List<T>排序总结
- C#中的List<string>泛型类示例
- C# List<T> 合并、去重、查找
- C# List<T>
- C# List<T>用法
- C#中string[]数组和list<string>泛型的相互转换 【转】
- C# List<T> 泛型
- C# 数据批量插入到数据库SqlBulkCopy(源数据类型:List<T> Or DataTable)
- C#学习笔记之——List<T>
- [C#] 對List<T>取交集、聯集及差集