[C#] Func及Action的快速Demo
参考代码1:
using System;
using System.Collections.Generic;
using System.Linq;
namespace FuncActionDemo
{
class FuncActionTest
{
public void Test1(List<int> data, Func<int, bool> filter)
{
var result = data.Where(x => filter(x)).ToList();
result.ForEach(x =>
{
Console.WriteLine(x);
}
);
}
public void Test2(List<int> data, Action<int, int> action)
{
var d = data.OrderBy(x => x).ToList();
action(d[0], d[1]);
}
public void Test3(List<int> data, Func<int, int,int> func)
{
var d = data.Where(x => x%2==1).ToList();
int iOddAccSum= d.Aggregate(func);
Console.WriteLine("Odd Acc Sum:"+iOddAccSum.ToString());
}
}
class Program
{
static void Main(string[] args)
{
FuncActionTest faTest = new FuncActionTest();
List<int> data = new List<int> { 1, 2, 4, 7, 8, 9 };
faTest.Test1(data, x => {
if (x % 2 == 0)
return true;
else
return false;
});
faTest.Test1(data, x => { return FilterEven(x); });
faTest.Test1(data, FilterEven);
Console.WriteLine("-----------");
faTest.Test2(data, Add);
faTest.Test3(data,Acc);
}
static bool FilterEven(int s)
{
if (s % 2 == 0)
return true;
else
return false;
}
static void Add(int a, int b)
{
Console.WriteLine(a + b);
}
static int Acc(int a, int b)
{
return a * 10 + b;
}
}
}
参考代码2:
using System;
using System.Linq; namespace AggregateDemo
{
class Program
{
static void Main(string[] args)
{
string[] words = new string[] { "My", "Name", "Is", "Zhang San" };
string s = words.Aggregate((a, n) => a + " " + n);
Console.WriteLine(s); int[] ints = new int[] { 1,2,3,4,5,6};
int iSum = ints.Aggregate(1000,(a, b) => a*10+b);
Console.WriteLine(iSum);
}
}
}
参考代码3:
[C#] Func及Action的快速Demo的更多相关文章
- 通过IL分析C#中的委托、事件、Func、Action、Predicate之间的区别与联系
先说一下个人理解的结论吧: delegate是C#中的一种类型,它实际上是一个能够持有对某个方法的引用的类. delegate声明的变量与delegate声明的事件,并没有本质的区别,事件是在dele ...
- Func和Action委托简单用法
Func和Action类是特殊的类型,它们允许你在不必指定自定义委托类型的情况下,去使用委托.在整个.NET框架中都可以使用它们.例如,在我们考察并行计算时,你也会看到这两个类的示例. 上面一段文字是 ...
- Func,Action 的介绍
Func,Action 的介绍 Func是一种委托,这是在3.5里面新增的,2.0里面我们使用委托是用Delegate,Func位于System.Core命名空间下,使用委托可以提升效率,例如在反射中 ...
- c# 委托(Func、Action)
以前自己写委托都用 delegate, 最近看组里的大佬们都用 Func , 以及 Action 来实现, 代码简洁了不少, 但是看得我晕晕乎乎. 花点时间研究一下,记录一下,以便后期的查阅. 1.F ...
- 第十节:委托和事件(2)(泛型委托、Func和Action、事件及与委托的比较)
一. 泛型委托 所谓的泛型委托,即自定义委托的参数可以用泛型约束,同时内置委托Func和Action本身就是泛型委托. 将上一个章节中的Calculator类中的方法用自定义泛型委托重新实现一下. p ...
- C# Func与Action
Func与Action是C#的内置委托,在使用委托时,可不必再定义. (1)Func:有返回类型的委托. Func类型的委托,肯定有一个返回类型,如果Func只有一个参数,那么它就是代表没有参数但是有 ...
- .NET自带泛型委托方法Func、Action和Predicate
Func.Action和Predicate是.NET自带的3个泛型委托方法,三个方法的区别其实并不大,要强行给混着用也是可以的,但是我们是有追求的人,把道理讲清楚总是好的. 一.Func是有返回值的方 ...
- Func 和 Action 委托
有了泛型委托,就有了一能适用于任何返回类型和任意参数(类型和合理的个数)的通用委托,Func 和 Action.如下所示(下面的in表示参数,out表示返回结果): delegate TResult ...
- 回炉重造系列-C# func and action委托是什么?
如题: C# func and action委托是什么? 1) 回答这个问题之前,我们需要了解什么是委托(英文 Delegate )? 为了便于理解,再往前推一步,回到c语言时代,指针的概念. 什么是 ...
- Linq 入门 顺带 Func与Action
Linq的优点: 查询是一种从数据源检索数据的表达式. 查询通常用专门的查询语言来表示. 随着时间的推移,人们已经为各种数据源开发了不同的语言:例如,用于关系数据库的 SQL 和用于 XML 的 XQ ...
随机推荐
- [Github]获取github ID号
[Github]获取github ID号 https://api.github.com/users/ + 你的账户名称 实例:我github账号叫iBoundary. https://api.gith ...
- 2.VS编写XML实例程序
在VS中编写XML实例程序 1.如下,在 VS 中分别新建 XML 文件.XML 解析类.XML 实体类 2.在项目中代码,如下 (1)XML 文件(注:在 VS 解决方案资源管理器中选中 XML ...
- 打卡node day04--express-get.post.路由
1.基本使用 npm i express 2.请求 get: post: express 不能直接解析请求体,所以需要第三方插件 ---->body-parser 使用 npm install ...
- 统计学习导论之R语言应用(二):R语言基础
统计学习导论(ISLR) 参考资料 The Elements of Statistical Learning An Introduction to Statistical Learning 统计学习导 ...
- hive支持的压缩算法
压缩格式的设置 set mapred.output.compression= 压缩格式 工具 算法 扩展名 是否支持分割 Hadoop编码/解码器 default deflate .deflate N ...
- GOF23种设计模式是哪些
设计模式实践里面提供了许多经久不衰的解决方案和最佳方案.这里,GOF 设计模式主要分为三大类:创建模式.结构模式和行为模式.创建模式对于创建对象实例非常有用.结构模式通过处理类或对象的组合来作用于企业 ...
- Vue3.0 编译做了哪些优化
a. 生成 Block tree Vue.js 2.x 的数据更新并触发重新渲染的粒度是组件级的,单个组件内部 需要遍历该组 件的整个 vnode 树.在 2.0 里,渲染效率的快慢与组件大小成正相关 ...
- element ui 分页
修改选中页码的样式: .el-pager .active{ color:red !important;//选中 } .el-pager .number:hover{ color:red !import ...
- 【北邮人论坛帖子备份】【FAQ】给今年国企求职学弟学妹的一点建议
目录 主要内容 补充--[心得][校招]面向国企秋招的一些体会 补充--[心得]回馈论坛,某toca的小弟金融类央企秋招过程中的一点点 主要内容 时间:Fri Feb 19 23:00:33 2021 ...
- pycharm 2021.3版本无法安装unittest
不用安装unittest包,直接在类后面的括号里黏贴:unittest.TestCase,报错后点击导入unittest包即可.