linq+lambda+delegate,从list中查找到满足匹配条件的所有数据索引值
linq的扩展方法中有FindIndex,FindLastIndex两个方法可以查找满足条件的首个和最后一个数据的索引值,利用delegate将匹配条件的方法传入FindAllIndex,查找满足匹配条件的所有索引返回
/// <summary>
/// 返回list内所有满足where条件的元素的索引
/// </summary>
public static List<int> FindAllIndex<T>(this List<T> list, Func<T, bool> where)
{
List<int> indexs = new List<int>();
if (list != null)
{
for (int i = 0; i < list.Count; i++)
{
if (where(list[i]))
{
indexs.Add(i);
}
}
}
return indexs;
}
测试:
public void Test()
{
List<string> datas = new List<string>();
datas.Add("格力");
datas.Add("铁蛋儿");
datas.Add("english");
datas.Add("toyota");
datas.Add("A");
var indexs = datas.FindAllIndex(e => e.Length > 2);
foreach (int i in indexs)
{
Console.WriteLine("索引:" + i + ";值:" + datas[i]);
}
}

linq+lambda+delegate,从list中查找到满足匹配条件的所有数据索引值的更多相关文章
- C#中,使用正则表达式匹配获取所需数据
.NET中,使用正则表达式匹配获取所需数据 需求:获取一串字符串中,正则匹配出需要的数据. 例如以下字符串: string temp ="ErrorCode:-1,Message:{&quo ...
- Linq连接数据库时,sql中的列为自增长,如何添加数据?
1`首先在数据库中写入命令 SET IDENTITY_INSERT 表名 on 2·重新把表拖入 .dbml 中
- word search(二维数组中查找单词(匹配字符串))
Given a 2D board and a word, find if the word exists in the grid. The word can be constructed from l ...
- 在Team Foundation Server (TFS)的代码库或配置库中查找文件或代码
[update 2017.2.11] 最新版本的TFS 2017已经增加了代码搜索功能,可以参考这个链接 https://blogs.msdn.microsoft.com/visualstudioal ...
- Javascript中正则表达式的全局匹配模式
先看一道JavaScript题目,据说是国内某知名互联网企业的JavaScript笔试题,如果对正则的全局匹配模式不了解的话可能会对下面的输出结果感到疑惑. var str = "123#a ...
- C#中,使用正式表达式匹配获取所需数据
.NET中,使用正式表达式匹配获取所需数据 需求:获取一串字符串中,正则匹配出需要的数据. 例如以下字符串: string temp ="ErrorCode:-1,Message:{&quo ...
- Repeater 模板中查找子控件
前言:对于Repeater控件,相信从事NETWeb开发的同仁们再熟悉不过了.因其呈现方式和Literal一样,并不在前端生成任何表单标签元素,所以属于比较轻量级的控件.不过青睐于Repeater的主 ...
- Linq lambda 匿名方法
课程6 委托.匿名方法.Lambda表达式.Linq查询表达式 上课日志1 一.委托的基本认识 提问:能不能把方法作为参数传递??? 也即是能不能声明一个能存放方法的变量呢——委托. 委托是一种数据类 ...
- [算法1-排序](.NET源码学习)& LINQ & Lambda
[算法1-排序](.NET源码学习)& LINQ & Lambda 说起排序算法,在日常实际开发中我们基本不在意这些事情,有API不用不是没事找事嘛.但必要的基础还是需要了解掌握. 排 ...
- 在stream流和byte[]中查找(搜索)指定字符串
在 stream流 和 byte[] 中查找(搜索)指定字符串 这里注重看的是两个 Search 的扩展方法,一个是 stream 类型的扩展,另一个是 byte[] 类型的扩展, 如果大家有更好的“ ...
随机推荐
- 如何利用HMMER鉴定基因家族成员
通常我们用的都是通过blast比对来确定我们需要的家族成员,首先是比对序列,再次是需要目标物种的蛋白序列,来进行比对,通常比对的时候我们都需要设定e-value值.今天我们来学习一下利用HMMER来鉴 ...
- CH05_数组
CH05_数组 概述 定义:一组相同类型的数据的集合. 描述: 1.数组中的每个元素都是相同的数据类型 2.数组是由连续的内存位置组成的. 3.数组索引是从0开始 一维数组 语法: 1.数据类型 数组 ...
- docker生产环境jvm性能优化
1.xmx与xms设置多大合适 docker获得的mem_usage的大小是从外部得到的java进程的内存大小,不仅仅是 -Xmx设置的大小,如果 -Xmx和docker分配的内存一致的话,由于jav ...
- async await 状态机理解
public async Task<string> Wait3S() { await Task.Delay(3000); Console.WriteLine("Wait 3 S& ...
- GC终结标记 SuspendEE 是怎么回事
一:背景 1. 讲故事 写这篇是起源于训练营里有位朋友提到了一个问题,在 !t -special 输出中有一个 SuspendEE 字样,这个字样在 coreclr 中怎么弄的?输出如下: 0:000 ...
- Oracle——navicat连接Oracle数据库报错(12514)
2024/07/22 1.问题描述 2.解决办法 3.参考材料 1.问题描述 与其他厂商做数据对接时,对方提供相关视图,我navicat连接Oracle数据库时报错,其报错代码如下: ORA-1251 ...
- windows中如何将python脚本以服务运行
一.下载nssm工具 NSSM介绍 NSSM(the Non-Sucking Service Manager)是Windows环境下一款免安装的服务管理软件,它可以将应用封装成服务,使之像window ...
- Linux下错误解决方案
错误 "E: Unable to correct problems, you have held broken packages."这种问题包破坏问题,可能是由于镜像源与系统版本不 ...
- 【ETL工具】DataX + DataXWeb 初使用过程记录
版本:DataX v202309 DataXWeb 2.1.3预发布版 DataX: Github:https://github.com/alibaba/DataX 功能介绍文档:https://g ...
- maven 打包 pom build
<dependencyManagement> <dependencies> <dependency> <groupId>org.springframew ...