List集合操作一:遍历与查找
首先声明本文不是讨论Linq,在Framwork2.0中也不支持linq操作的,主要是记录一下List集合的使用方法。
List<T> 一般主要用到的查找遍历方法:
Find:搜索指定谓词所定义条件相匹配的元素,并返回整个List<T>中的第一个匹配元素。
FindLast:搜索指定谓词所定义条件相匹配的元素,并返回整个List<T>中的最后一个匹配元素。
Find:搜索指定谓词所定义条件相匹配的元素,并返回整个List<T>中的第一个匹配元素。
FindLast:搜索指定谓词所定义条件相匹配的元素,并返回整个List<T>中的最后一个匹配元素。
FindAll:检索与指定谓词定义条件匹配的所有元素。
FindIndex:搜索指定谓词所定义条件相匹配的元素,并返回整个List<T>中的第一个匹配元素从0开始的索引,未找到返回-1。
FindLastIndex:搜索指定谓词所定义条件相匹配的元素,并返回整个List<T>中的最后一个匹配元素从0开始的索引,未找到返回-1。
ForEach:对每个List<T>执行指定的操作。参数 Action委托。
注意:
List<T>Find(), List<T>FindLast()的不同是, List<T>Find()由Index=0开始寻找, 而List<T>FindLast()由Index = List<T>.Count - 1开始寻找.
我们创建一个控制台程序并参照一下代码实例:
首先创建一个实体类Player:
using System.Collections.Generic;namespace ListDemo1 {public class Player{public Player(int id, string name, string team){this.Id = id;this.Name = name;this.Team = team;}public int Id { get; set; }public string Name { get; set; }public string Team { get; set; }} }
创建一个集合类PlayerList继承List<Player>:
using System.Collections.Generic;namespace ListDemo1 {public class PlayerList : List<Player>{public PlayerList(){this.Add(new Player(1, "科比-布莱恩特", "湖人队"));this.Add(new Player(2, "保罗-加索尔", "湖人队"));this.Add(new Player(3, "拉玛尔-奥多姆", "湖人队"));this.Add(new Player(4, "德克-诺维茨基", "小牛队"));this.Add(new Player(5, "杰森-特里", "小牛队"));this.Add(new Player(6, "肖恩-马里昂", "小牛队"));this.Add(new Player(7, "凯文-加内特", "凯尔特人队"));}} }
Main 函数代码:
using System; using System.Collections.Generic;namespace ListDemo1 {class Program{static void Main(string[] args){PlayerList players = new PlayerList();//查找所有队员数据:Action<Player> listAll = delegate(Player p){Console.WriteLine(string.Format("队员Id={0} | 队员名称={1} | 所属球队={2} ", p.Id, p.Name, p.Team));};Console.ForegroundColor = ConsoleColor.Red;Console.WriteLine(string.Format("数据库所有队员信息为:"));players.ForEach(listAll);//查找小牛队队员的谓词定义Predicate<Player> findValue = delegate(Player p){return p.Team.Equals("小牛队");};//第一个匹配元素Player firstPlayer = players.Find(findValue);Console.ForegroundColor = ConsoleColor.Green;Console.WriteLine("\r\nFind方法获得第一个小牛队员是:{0}", firstPlayer.Name);//获得所有的匹配元素List<Player> findPlayers = players.FindAll(findValue);Console.ForegroundColor = ConsoleColor.Yellow;Console.WriteLine(string.Format("\r\nFindAll方法查找到的所有小牛球员为:"));Action<Player> listFindAll = delegate(Player p){Console.WriteLine(string.Format("队员Id={0} | 队员名称为={1}", p.Id, p.Name));};findPlayers.ForEach(listFindAll);Console.ReadKey();}} }
运行结果如下图:
至此本篇List集合的遍历与查找介绍完毕,下一篇主要介绍一下List集合的排序方式
-=源码下载=-
转载于:https://www.cnblogs.com/lxblog/archive/2012/08/23/2652502.html
List集合操作一:遍历与查找相关推荐
- 1.8 Collections类操作集合详解——排序,查找,复制
Collections类操作集合详解 Collections 类是 Java 提供的一个操作 Set.List 和 Map 等集合的工具类. Collections 类提供了许多操作集合的静态方法,借 ...
- Python基础入门:高效的集合操作
Python中有两种可以遍历的容器类型. 序列类型:包含字符串.列表.元祖 映射(哈希)类型:包含字典.集合 序列类型是线性表,就像数组一样,是在内存中开辟一块连续空间,连续存储的,那么查找某个元素时 ...
- Python中的高效的集合操作
Python中有两种可以遍历的容器类型. 序列类型:包含字符串.列表.元祖 映射(哈希)类型:包含字典.集合 序列类型是线性表,就像数组一样,是在内存中开辟一块连续空间,连续存储的,那么查找某个元素时 ...
- Java-Collection集合之单列集合List,以及遍历方式
Collection值单列集合List(),以及遍历方式 知识点-- 单列集合常用类的继承体系 讲解: Collection:单列集合类的根接口,用于存储一系列符合某种规则的元素,它有两个重要的子接口 ...
- 集合框架Collection、Map查找表(Java SE第三阶段9)
目录 Collection List和Set 集合方法 集合持有对象的引用 集合间操作方法 Iterator迭代器 增强型for循环 泛型机制 List List(ArrayList和LinkedLi ...
- C++拾趣——STL容器的插入、删除、遍历和查找操作性能对比(Windows VirtualStudio)——遍历和删除
相关环境和说明在<C++拾趣--STL容器的插入.删除.遍历和查找操作性能对比(Windows VirtualStudio)--插入>已给出.本文将分析各个容器中遍历和查找的性能.(转载请 ...
- C++拾趣——STL容器的插入、删除、遍历和查找操作性能对比(Windows VirtualStudio)——删除
相关环境和说明在<C++拾趣--STL容器的插入.删除.遍历和查找操作性能对比(Windows VirtualStudio)--插入>已给出.本文将分析从头部.中间和尾部对各个容器进行删除 ...
- C++拾趣——STL容器的插入、删除、遍历和查找操作性能对比(Windows VirtualStudio)——插入
操作系统是Windows10 64bit,编译器是 Microsoft Virtual Studio Community 10.编译产出是64位测试程序.(转载请指明出于breaksoftware的c ...
- C++拾趣——STL容器的插入、删除、遍历和查找操作性能对比(ubuntu g++)——遍历和查找
相关环境和说明在<C++拾趣--STL容器的插入.删除.遍历和查找操作性能对比(ubuntu g++)--插入>已给出.本文将分析各个容器中遍历和查找的性能.(转载请指明出于breakso ...
- C++拾趣——STL容器的插入、删除、遍历和查找操作性能对比(ubuntu g++)——删除
相关环境和说明在<C++拾趣--STL容器的插入.删除.遍历和查找操作性能对比(ubuntu g++)--插入>已给出.本文将分析从头部.中间和尾部对各个容器进行删除的性能.(转载请指明出 ...
最新文章
- 红帽oracle关系,redhat和oracle linux kernel对应关系
- Python模块: 文件和目录os+shutil
- Intent的一些用法
- Java单例模式的几种实现方式
- Typecho webstack开源导航主题
- 【Flink】Flink自定义UDF以及为函数启用别名
- Speaker Recognition: Feature Extraction
- ubuntu下打开.chm文件的方法(比如交换机参考手册)
- 19. JavaScript RegExp 对象
- 计算机思维与计算文化,计算文化与计算思维基础
- Windows电脑上搭建Radius 服务器并实现802.1X认证
- 远程审批、远程会议及远程培训就用天翼云办公
- python爬虫和医学数据_【爬虫】(八)Python之爬虫和数据小解析
- Windows10 22H2 19045.2130推送了!
- DSP28035控制舵机
- 原生小程序使用二维码扫码调用接口
- 云呼HTML自适应官网源码
- 测试技术提升建议(测试必看)
- 2022年证券从业资格证券市场基本法律法规考试每日一练及答案
- 计算机软硬件维护意义,计算机软硬件故障检测维护
热门文章
- 侠诺虚拟服务器,简便不等于简单 侠诺PPPoE服务器功能介绍
- oracle行相减,oracle两张表满足某个条件时,表中满足条件的那一行的某列相减
- maxvalue mysql自动分区_深入解析MySQL分区(Partition)功能
- php生成静态页面的方法,php生成静态页面的办法
- Mysql 查询当月时间数据
- spring boot全局异常捕捉
- 50 个 jQuery 插件可将你的网站带到另外一个高度 【已翻译100%】
- Hibernate中的HQL语言
- 一天一种设计模式之七-----装饰模式
- Module Zero之语言管理