关于内置委托的用法


Action委托
static void Main(string[] args)
        {
            #region Func<T,TResult>委托示例
            //需求:查找整型集合list中大于3的所有元素组成的新集合,并打印出集合元素
            List<int> list = new List<int>() { 1, 2, 3, 4, 5 };
            //将匿名方法分配给 Func<T,TResult> 委托实例
            Func<int, bool> concat1 = delegate(int i) { return i > 3; };
            var newlist1 = list.Where(concat1).ToList();
            //将 Lambda 表达式分配给 Func<T,TResult> 委托实例
            Func<int, bool> concat2 = i => i > 3;
            var newlist2 = list.Where(concat2).ToList();
            newlist1.ForEach(i => Console.WriteLine(i.ToString()));
            newlist2.ForEach(i => Console.WriteLine(i.ToString()));
            Console.ReadKey();
            #endregion
        }

Func函数

Predicate
static void Main(string[] args)
        {
            #region  Predicate<T>委托示例
            //需求:查找整型集合list中大于3的所有元素组成的新集合,并打印出集合元素
            List<int> list = new List<int>() { 1, 2, 3, 4, 5 };
            //将匿名方法分配给 Predicate<T> 委托实例
            Predicate<int> concat1 = delegate(int i) { return i > 3; };
            var newlist1 = list.FindAll(concat1);
            //将 lambda 表达式分配给 Predicate<T> 委托实例
            Predicate<int> concat2 = (c => c > 3);
            var newlist2 = list.FindAll(concat2);
            newlist1.ForEach(i => Console.WriteLine(i));
            newlist2.ForEach(i => Console.WriteLine(i));
       Console.ReadKey();
            #endregion
        }
static void Main(string[] args)
        {
       #region Action<T>委托示例
            //需求:打印出整型集合list的元素
            List<int> list = new List<int>() { 1, 2, 3, 4, 5 };
            //将匿名方法分配给 Action<T> 委托实例
            Action<int> concat1 = delegate(int i) { Console.WriteLine(i); };
            list.ForEach(concat1);
            //将 lambda 表达式分配给 Action<T> 委托实例
            Action<int> concat2 = (i => Console.WriteLine(i));
            list.ForEach(concat2);
            Console.ReadKey();
        #endregion
        }

以上内容参考自:https://www.cnblogs.com/0weibin/p/3955207.html

原文地址:https://www.cnblogs.com/HuangLiming/p/10193754.html

时间: 2024-10-05 09:05:02

关于内置委托的用法的相关文章

委托+内置委托方法

委托概念:如果我们要把方法当做参数来传递的话,就要用到委托.简单来说委托是一个类型,这个类型可以赋值一个方法的引用. 声明委托: 在C#中使用一个类分两个阶段,首选定义这个类,告诉编译器这个类由什么字段和方法组成的,然后使用这个类实例化对象.在我们使用委托的时候,也需要经过这两个阶段,首先定义委托,告诉编译器我们这个委托可以指向哪些类型的方法,然后,创建该委托的实例. 定义委托的语法如下: delegate void IntMethodInvoker(int x); 定义了一个委托叫做IntMe

(C#) 内置 委托(1)

上篇文章简单介绍了一下什么是委托?但是每次都内定义一个委托,感觉有些麻烦,所以微软为了为人民服务,提出了内置委托,让你直接使用就好. 对于内置委托,最常用的主要有三个,Action<>,Func<>,Predicate<> 对于内置,怎么理解?其实就是少去了定义的过程. 对于Action<>的出现是在.NetFramework2.0的时候出现的,当时还只能够传入4个值,渐渐的在.NetFramework3.0的支持下,出现了Func<>,满足了对

C#常用的内置委托

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks; namespace 内置委托{static class Program { static void Main(string[] args) { } static List<Person> GetPersonList() { return new List<Person

个人总结:匿名委托+内置委托+Lambda表达式

匿名委托+内置委托+Lambda表达式 概要 在实际开发中,项目开发框架不同,用到的技术是不一样的,这里总结一下用Linq开发,ORM之EF开发会大量使用的Lambda表达式; 正文 之前提过.Net有一套扩展在IEumberable<T>泛型接口的扩展方法,本文是从这个基础继续总结; 1.void Action<in T>: 先拿一个ForEach()来讲: public void ForEach(Action<T> action); 这个Action<T>

C#内置委托

一.Func Func是一个.Net内置的委托. Func<Result>,Func<T1,Result>是一个.Net内置的泛型委托. Func<TResult> Func<T,TResult> Func<T1,T2,TResult> Func<T1,T2,T3,TResult> Func<T1,T2,T3,T4,TResult> 它有5种形式,只是参数个数不同:第一个是无参数,但是有返回值: 下面是一个简单的普通委托来

.NET (二)委托第二讲:内置委托Func

在上一章节中,我们自己声明了一个委托: public delegate bool Cal(int num); 接受int参数,返回bool类型,目的是过滤集合中的 奇数 或者 偶数. .NET 为我们内置了一个泛型委托,用于处理这种情况,省去了自定义的麻烦. public delegate TResult Func<in T, out TResult>(T arg); Func是.NET定义的委托,接受任何参数,并返回自定义类型结果. 我们可以将代码修改为:public static void

2017/9/11——何某某更博,花时间整理了所有的Python内置方法的用法,便于日后复习

1.这里是所有的内置方法的使用方法 # -*- coding:utf-8 -*- # Author : 何子辰 # 所有的内置方法总结 print('1.abs'.center(50,'*')) # abs 绝对值 a = abs(-5) print(a) print('2.all'.center(50,'*')) # all # Return True if all elements of the # iterable are true(or if the iterable # is empt

内置函数enumerate( )用法

name=[ 'coco', 'liux', 'zhangyq', 'liufupengdozhao'] # 使用rang()方法for i in range(0,len(name)): print(i,name[i]) # 上面的方法有些累赘,使用内置enumerrate函数会有更加直接,优美的做for i in enumerate(name): print(i) # enumerate会将数组或列表组成一个索引序列,使我们再获取索引和索引内容的时候更加方便如下:for index,i in

C++内置二分查找用法

c++内置二分查找 #include < algorithm > 一.binary_search:查找某个元素是否出现.函数模板:binary_search(arr[], arr[]+size, indx)1参数说明:arr[]: 数组首地址size:数组元素个数indx:需要查找的值函数功能: 在数组中以二分法检索的方式查找,若在数组(要求数组元素非递减)中查找到indx元素则真,若查找不到则返回值为假. 二.lower_bound:查找第一个大于或等于某个元素的位置.函数模板:lower_