文档章节

Enumerable类成员函数的参数的几种写法

IT周见智
 IT周见智
发布于 2015/06/05 17:17
字数 324
阅读 1
收藏 0

      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、用匿名方法:

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  }

 

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  }

 

任何需要新建委托(new  MyDelegate(……))的地方,一般都能用匿名方法(delegate(参数){……}),也一般能用lambda表达式((参数)=>{函数体})。

© 著作权归作者所有

共有 人打赏支持
IT周见智

IT周见智

粉丝 10
博文 61
码字总数 185891
作品 0
西青
私信 提问
TypeScript基础入门之装饰器(二)

转发 TypeScript基础入门之装饰器(二) 装饰器求值 如何应用装饰器应用于类内的各种声明的顺序: 1. 对每个实例成员应用参数装饰器,后跟Method,Accessor或Property Decorators。 2. 对每个静...

durban
10/22
0
0
ES6 系列之 Babel 是如何编译 Class 的(上)

前言 在了解 Babel 是如何编译 class 前,我们先看看 ES6 的 class 和 ES5 的构造函数是如何对应的。毕竟,ES6 的 class 可以看作一个语法糖,它的绝大部分功能,ES5 都可以做到,新的 clas...

冴羽
11/05
0
0
C++11的初始化语法

首先我要强调,C++中struct和class唯一的区别是,前者的成员默认公有,后者成员默认私有. 在C++03中,结构体/类的初始化方式只有来自C语言的一种写法: 在C++中,有一个POD(Plain old data st...

王子亭
2012/12/23
5.8K
4
Ruby的函数式编程:Part 3

在Ruby的函数式编程的第一部分,我们了解了基本的函数式编程,并且详细研究了不可变值和无副作用的代码。在第二部分,我们研究了高阶函数与柯里化(currying)的概念,同时也研究了Ruby中匿名...

jerrytao
2013/02/03
1K
0
详解Object.values(),Object.keys(),Object.entries(),Object.create(),includes()

(1)Object.keys() // 返回数组,成员是参数对象自身的(不含继承的)所有可遍历(enumerable)属性的键名。

JamesView
11/21
0
0

没有更多内容

加载失败,请刷新页面

加载更多

TiQuery:All Diagnosis in SQL | TiDB Hackathon 优秀项目分享

本文作者是来自 TiNiuB 队的黄梦龙同学,他们的项目 TiQuery 在本届 TiDB Hackathon 2018 中获得了三等奖。 TiQuery 可以搜集诊断集群问题所需要的信息,包括集群拓扑,Region 分布,配置,各...

TiDB
8分钟前
1
0
git 分支创建合并流程图

gentlelions
16分钟前
1
0
Kali Linux常用服务配置教程DHCP服务原理

Kali Linux常用服务配置教程DHCP服务原理 动态主机配置协议(Dynamic Host Configuration Protocol,简称DHCP)是一个局域网的网络协议,基于UDP协议工作。它主要有两个用途:第一,给内部网...

大学霸
17分钟前
0
0
控制台打印图片

function dev(){ if (window.console){ console.log("%c\n ", "font-size:100px;background:url('http://gmcyzs.com/resources/images/logo.png') no-repeat"); console.log('%c 深务平台,\......

羊皮卷
24分钟前
0
0
MyBaties的二级缓存

二级缓存介绍 在上文中提到的一级缓存中,其最大的共享范围就是一个SqlSession内部,那么如何让多个SqlSession之间也可以共享缓存呢,答案是二级缓存。 当开启二级缓存后,会使用CachingExec...

嘴角轻扬30
25分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部