首先声明本文不是讨论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. 1.8 Collections类操作集合详解——排序,查找,复制

    Collections类操作集合详解 Collections 类是 Java 提供的一个操作 Set.List 和 Map 等集合的工具类. Collections 类提供了许多操作集合的静态方法,借 ...

  2. Python基础入门:高效的集合操作

    Python中有两种可以遍历的容器类型. 序列类型:包含字符串.列表.元祖 映射(哈希)类型:包含字典.集合 序列类型是线性表,就像数组一样,是在内存中开辟一块连续空间,连续存储的,那么查找某个元素时 ...

  3. Python中的高效的集合操作

    Python中有两种可以遍历的容器类型. 序列类型:包含字符串.列表.元祖 映射(哈希)类型:包含字典.集合 序列类型是线性表,就像数组一样,是在内存中开辟一块连续空间,连续存储的,那么查找某个元素时 ...

  4. Java-Collection集合之单列集合List,以及遍历方式

    Collection值单列集合List(),以及遍历方式 知识点-- 单列集合常用类的继承体系 讲解: Collection:单列集合类的根接口,用于存储一系列符合某种规则的元素,它有两个重要的子接口 ...

  5. 集合框架Collection、Map查找表(Java SE第三阶段9)

    目录 Collection List和Set 集合方法 集合持有对象的引用 集合间操作方法 Iterator迭代器 增强型for循环 泛型机制 List List(ArrayList和LinkedLi ...

  6. C++拾趣——STL容器的插入、删除、遍历和查找操作性能对比(Windows VirtualStudio)——遍历和删除

    相关环境和说明在<C++拾趣--STL容器的插入.删除.遍历和查找操作性能对比(Windows VirtualStudio)--插入>已给出.本文将分析各个容器中遍历和查找的性能.(转载请 ...

  7. C++拾趣——STL容器的插入、删除、遍历和查找操作性能对比(Windows VirtualStudio)——删除

    相关环境和说明在<C++拾趣--STL容器的插入.删除.遍历和查找操作性能对比(Windows VirtualStudio)--插入>已给出.本文将分析从头部.中间和尾部对各个容器进行删除 ...

  8. C++拾趣——STL容器的插入、删除、遍历和查找操作性能对比(Windows VirtualStudio)——插入

    操作系统是Windows10 64bit,编译器是 Microsoft Virtual Studio Community 10.编译产出是64位测试程序.(转载请指明出于breaksoftware的c ...

  9. C++拾趣——STL容器的插入、删除、遍历和查找操作性能对比(ubuntu g++)——遍历和查找

    相关环境和说明在<C++拾趣--STL容器的插入.删除.遍历和查找操作性能对比(ubuntu g++)--插入>已给出.本文将分析各个容器中遍历和查找的性能.(转载请指明出于breakso ...

  10. C++拾趣——STL容器的插入、删除、遍历和查找操作性能对比(ubuntu g++)——删除

    相关环境和说明在<C++拾趣--STL容器的插入.删除.遍历和查找操作性能对比(ubuntu g++)--插入>已给出.本文将分析从头部.中间和尾部对各个容器进行删除的性能.(转载请指明出 ...

最新文章

  1. 红帽oracle关系,redhat和oracle linux kernel对应关系
  2. Python模块: 文件和目录os+shutil
  3. Intent的一些用法
  4. Java单例模式的几种实现方式
  5. Typecho webstack开源导航主题
  6. 【Flink】Flink自定义UDF以及为函数启用别名
  7. Speaker Recognition: Feature Extraction
  8. ubuntu下打开.chm文件的方法(比如交换机参考手册)
  9. 19. JavaScript RegExp 对象
  10. 计算机思维与计算文化,计算文化与计算思维基础
  11. Windows电脑上搭建Radius 服务器并实现802.1X认证
  12. 远程审批、远程会议及远程培训就用天翼云办公
  13. python爬虫和医学数据_【爬虫】(八)Python之爬虫和数据小解析
  14. Windows10 22H2 19045.2130推送了!
  15. DSP28035控制舵机
  16. 原生小程序使用二维码扫码调用接口
  17. 云呼HTML自适应官网源码
  18. 测试技术提升建议(测试必看)
  19. 2022年证券从业资格证券市场基本法律法规考试每日一练及答案
  20. 计算机软硬件维护意义,计算机软硬件故障检测维护

热门文章

  1. 侠诺虚拟服务器,简便不等于简单 侠诺PPPoE服务器功能介绍
  2. oracle行相减,oracle两张表满足某个条件时,表中满足条件的那一行的某列相减
  3. maxvalue mysql自动分区_深入解析MySQL分区(Partition)功能
  4. php生成静态页面的方法,php生成静态页面的办法
  5. Mysql 查询当月时间数据
  6. spring boot全局异常捕捉
  7. 50 个 jQuery 插件可将你的网站带到另外一个高度 【已翻译100%】
  8. Hibernate中的HQL语言
  9. 一天一种设计模式之七-----装饰模式
  10. Module Zero之语言管理