List<T>.Find()方法的运用

以前为了找到LIST集合中某个特定项,还傻傻的用foreach去遍历集合,再返回符合条件的项。其中,微软早已提供了一个很好的方法来查找特定的LIST,那就是Find()方法。

List<T>.Find()接收一个类型为T的委托,并且返回值为bool类型。

示例:

class Program
	{
		static void Main(string[] args)
		{
			List<string> dinosaurs = new List<string>();

			dinosaurs.Add("Compsognathus");
			dinosaurs.Add("Amargasaurus");
			dinosaurs.Add("Oviraptor");
			dinosaurs.Add("Velociraptor");
			dinosaurs.Add("Deinonychus");
			dinosaurs.Add("Dilophosaurus");
			dinosaurs.Add("Gallimimus");
			dinosaurs.Add("Triceratops");

			Console.WriteLine();
			foreach (string dinosaur in dinosaurs)
			{
				Console.WriteLine(dinosaur);
			}
			
			Console.WriteLine("\nFind(EndsWithSaurus): {0}",
				dinosaurs.Find(EndsWithSaurus));		//结果为:Amargasaurus
		}

		private static bool EndsWithSaurus(String s)
		{
			if ((s.Length > 5) &&
				(s.Substring(s.Length - 6).ToLower() == "saurus"))
			{
				return true;
			}
			else
			{
				return false;
			}
		}
	}
EndsWithSaurus即为对应的委托方法。

还有更强大的可以直接用C#中的匿名方法,推荐使用匿名方法,代码简洁,而且还可以在方法中取到局部变量,这点很重要。

示例:

			int i = 5; //设置一个局部变量,用于匿名方法中

			Console.WriteLine("\nFind(EndsWithSaurus): {0}",
				dinosaurs.Find(delegate(string s) {
					return (s.Length > i) && (s.Substring(s.Length - 6).ToLower() == "saurus");
				}));		//结果为:Amargasauru
还有用法差不多的FindAll(),这里就不多说了



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值