linq+lambda+delegate,从list中查找到满足匹配条件的所有数据索引值
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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中查找到满足匹配条件的所有数据索引值的主要内容,如果未能解决你的问题,请参考以下文章
如何通过 Lambda 或 LINQ 从列表中获取不同的实例