排名
1
文章
860
粉丝
112
评论
163
.net core自定义项目模板,创建自己的模板项目,使用命令行创建模板项目
尘叶心繁 : 可以可以讲真的我都想弄个模板
net core webapi post传递参数
庸人 :
确实坑哈,我也是下班好了好几次,发现后台传递对象是可以的,但...
.net webapi 返回需要的字段,忽略某些字段,修改字段名等
雨雨雨雨雨辰 : 已精
.net webapi 返回需要的字段,忽略某些字段,修改字段名等
雨雨雨雨雨辰 :
疯狂反射
百度编辑器自定义模板
庸人 : 我建议换个编辑器,因为现在百度富文本已经停止维护了,用tinymec...
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:
50010702506256


欢迎加群交流技术

集合提供了Sort,我们可以实现IComparer接口,来实现自定义的对象排序方法:
例如:根据年龄来排序
- public class MySort : IComparer<UserInfo>
- {
- /// <summary>
- /// 根据返回值来决定两个对象的大小
- /// 如果等于0,表示两个对象相同就按照原序
- /// 如果小于0,表示x小于y,前一个对象小于后一个对象
- /// 如果大于0,表示x大于y,前一个对象大于后一个对象
- /// </summary>
- /// <param name="x"></param>
- /// <param name="y"></param>
- /// <returns></returns>
- public int Compare(UserInfo x, UserInfo y)
- {
- if (x.Age > y.Age)
- return 10;
- else if (x.Age == y.Age)
- return 0;
- else
- {
- return -10;
- }
- }
- }
根据姓名长度来排序:
- class NameSort : IComparer<UserInfo>
- {
- public int Compare(UserInfo x, UserInfo y)
- {
- return x.UserName.Length - y.UserName.Length;
- }
- }
使用:
效果如下:
那么我们思考一下,基于接口排序的原理是什么呢?其实很简单就是随便写一个排序算法,然后调用这个接口里边提供的方法即可,根据返回的是正数,负数,还是0即可判断两个对象大小了
实现方法如下:
- public static void MyListSort<T>(List<T> numbers, IComparer<T> comparer)
- {
- //任选一种排序算法,这里选择排序
- for (int i = 0; i < numbers.Count - 1; i++)
- {
- for (int j = i + 1; j < numbers.Count; j++)
- {
- //只要找到比比较数大交换即可,这里具体的比较逻辑由接口来实现从而实现多态
- if (comparer.Compare(numbers[i], numbers[j]) > 0)
- {
- T temp = numbers[i];
- numbers[i] = numbers[j];
- numbers[j] = temp;
- }
- }
- }
- }
- 这里具体的比较逻辑由接口来实现从而实现多态,依赖于抽象而不依赖于具体的实现,这种设计方法可以降低耦合性,提高扩展性
使用:
效果就不看了和使用原生的一模一样
欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739。有需要软件开发,或者学习软件技术的朋友可以和我联系~(Q:815170684)
评价