Enumerable类成员函数的参数的几种写法
2023-02-18 16:38:17 时间
System.Linq.Enumerable类为我们提供了许多扩展方法,一般实现了IEnumerable<T>接口的类型都能被扩展,比如Enumerable类中定义了OrderBy方法,该方法用来根据某个键值对目标值序列排序,那么int[] 类型就能拥有OrderBy这个方法了。
其中OrderBy方法有两个参数,一个为要扩展类型的对象:this IEnumerable<TSource> source;一个就是返回排序键值的委托:Func<TSource, TKey> keySelector。其中Func是一个TSource类型参数,返回TKey类型值的委托,需要说的是,该参数有多种写法:1、
1、直接用Lambda表达式:
1 int[] sets={1,3,6,4,3,8,7};
2 var subset=sets.OrderBy((int a)=>{return a;});
3 foreach(var temp in subset)
4 {
5 console.write(temp);
6 }
2 var subset=sets.OrderBy((int a)=>{return a;});
3 foreach(var temp in subset)
4 {
5 console.write(temp);
6 }
2、用匿名方法:
1 int[] sets={1,3,6,4,3,8,7};
2 var subset=sets.OrderBy(delegate(int a){return a;});
3 foreach(var temp in subset)
4 {
5 console.write(temp);
6 }
2 var subset=sets.OrderBy(delegate(int a){return a;});
3 foreach(var temp in subset)
4 {
5 console.write(temp);
6 }
3、新建委托:
1 int key(int a)
2 {
3 return a;
4 }
5
6 int[] sets={1,3,6,4,3,8,7};
7 var subset=sets.OrderBy(new Func<int,int>(key));
8 foreach(var temp in subset)
9 {
10 console.write(temp);
11 }
2 {
3 return a;
4 }
5
6 int[] sets={1,3,6,4,3,8,7};
7 var subset=sets.OrderBy(new Func<int,int>(key));
8 foreach(var temp in subset)
9 {
10 console.write(temp);
11 }
任何需要新建委托(new MyDelegate(……))的地方,一般都能用匿名方法(delegate(参数){……}),也一般能用lambda表达式((参数)=>{函数体})。
相关文章
- 刷完15道js版dp题,面试再也不怕了
- 前端工程师leetcode算法面试之简单的二叉树
- 软硬件融合技术内幕 进阶篇 (5) ——云计算的六次危机(下)
- PostgreSQL计算影响某地的台风
- 不止于“算”,开放计算加速技术落地和行业赋能
- 云计算行业这些热点事件透露了哪些玄机?
- 挑战-40℃-70℃极限值,这款独具匠心的边缘计算设备是如何炼成的?
- 解决Windows远程桌面连接工具连接不上远程操作系统的问题
- “种”下黑科技,守护每株绿,“植”了!
- 什么是VXLAN?为什么需要VXLAN?
- makefile:带你了解一种常用于GNU gcc编译的工具语言
- Everything is Serverless,从开源框架对比说起
- “七大属性加持,三个全新升级组件”这个高性能利器有点厉害
- 华为云PB级数据库GaussDB(for Redis)介绍第四期:高斯 Geo的介绍与应用
- #开工新姿势#开启一年新征程,云社区叫你来充电啦!
- 云小课 | 守护网络安全不是问题,iptables的四表五链为你开启“八卦阵”
- 所见即搜,3分钟教你搭建一个服装搜索系统!
- AI辅助宫颈癌筛查技术全球居首,守护者的力量来源是?
- 网络知识一箩筐:IP地址划分的那些知识点
- MindSpore:基于本地差分隐私的 Bandit 算法