C# 找出泛型集合中的满足一定条件的元素 List.Wher()

在学习的过程中,发现泛型集合List<T>有一个Where函数可以筛选出满足一定条件的元素,结合Lambda表达式使用特别方便,写出来与大家分享。

1.关于Func<>

Func是一种有任意个输入参数,有一个返回值的委托,在使用的过程中,Func<in,in,out>,前n-1个是输入参数类型,第N个是输出参数类型。

如Fun<int,int,bool> compare=(x,y)=>{return x>y;};

表示定义一个 两个输入参数为int类型的,输出类型为bool类型的委托。

2.Where()

可以看到 以List<string>为例子,改where的参数为Func<string,bool>的委托,也就是说是一个输入值为string类型,输出为bool类型的委托。 如果返回为真,则该元素会被添加到IEnumerable中,通过对IEnumerable的遍历,可以将符合条件的每个元素输出。

3.代码片段

 List<string> names = new List<string>();
            names.Add("wangyang");
            names.Add("litong");
            names.Add("yangjie");

            IEnumerable<string> ie = names.Where((name) => { return name.Length < 7; });
            foreach (var VARIABLE in ie)
            {
                Console.WriteLine(VARIABLE);
            }

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java技术栈

JDK8新特性之Lambda表达式

什么是Lambda表达式 Java 8的一个大亮点是引入Lambda表达式,使用它设计的代码会更加简洁。当开发者在编写Lambda表达式时,也会随之被编译成一个...

35150
来自专栏Esofar 开发日记

C#基础篇 - 理解委托和事件

委托类似于C++中的函数指针(一个指向内存位置的指针)。委托是C#中类型安全的,可以订阅一个或多个具有相同签名方法的函数指针。简单理解,委托是一种可以把函数当做...

13630
来自专栏Jackson0714

不惧面试:委托

359130
来自专栏C/C++基础

C++数值类型与string的相互转换

std命令空间下有一个C++标准库函数std::to_string(),可用于将数值类型转换为string。使用时需要include头文件<string>。

53220
来自专栏hbbliyong

看到他我一下子就悟了---委托

看到大家的留言,我想说下我对委托的了解,首先看它的定义: 委托 就是将方法作为方法的参数 不用先看例子什么的,你就多品味品味这句话,然后你看下使用委托的步骤, ...

28680
来自专栏老马说编程

(91) Lambda表达式 / 计算机程序的思维逻辑

在之前的章节中,我们的讨论基本都是基于Java 7的,从本节开始,我们探讨Java 8的一些特性,主要内容包括: 传递行为代码 - Lambda表达式 函数式...

20880
来自专栏DOTNET

C#要点

内容摘要 1 数据类型   1.1表达范围问题   1.2 数组的长度问题   1.3 值类型与引用类型   1.4 匿名类型与隐式类型   1.5硬编码造成的...

29050
来自专栏cs

C#3.0面向对象程序设计一

文章首发 http://www.imooc.com/article/22105 我还在简书。。。。。。 面向对象三大特征,继承,封装,多态 1.0 封...

29660
来自专栏郭耀华‘s Blog

快速排序法

/** * 快速排序实现 * Created by John Kwok on 2018/2/2. */ import java.util.Arrays; ...

34060
来自专栏Lambda

Java8新特性

1. Lambda 表达式 2. 函数式接口 3. 方法引用与构造器引用 4. Stream API 5. 中的默认方法与静态方法 6....

23160

扫码关注云+社区

领取腾讯云代金券