FindAll()和Linq的Where()在效果上有啥区别吗? 我感觉一样啊,请教大家 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 FindAll是.net 2.0中的东西,而Where是为了linq而实现的扩展方法,是3.5中的东西。static void Main(string[] args){ List<int> il = new List<int>(); for (int i = 0; i < 100; i++) il.Add(i); List<int> f1 = il.FindAll(item => item % 2 == 0); var f2 = il.Where(item => item % 2 == 0); foreach (int fi1 in f1) Console.Write("{0} ", fi1); Console.WriteLine(); foreach (int fi2 in f2) Console.Write("{0} ", fi2);}从使用上看,两者都是使用item=>item%2==0这一lambda语句作为参数,但是两者却并不相同,前者使用的是Predicate<T>委托,而后者却是Func<T, bool>委托。有关这两个委托的介绍,您可以参考:http://www.sunnychen.org/article.asp?id=86 因为是新学,还看不懂2楼给的意思啊,自己再去研究研究能不能简单的说,findall和where那个更快呢? findall和where对同一集合来说没有快慢一说,findall是直接返回一个包含满足条件的结果集而where返回的只是一个查询变量,只有你调用foreach的时候才会去执行查询,要想和findall效果一样还得 where(XX).ToList(); 怎样禁用treeView某个节点前面的checkbox? datatable 顺序 64位xp下的media player编程 名字打架 的设计思想是怎样的啊 VS2005中含有IIS吗? 新作的网站,大家给点意见吧 使用一般处理程序获取不到上传文件了,为什么呢? 请教一下如何实现datagrid的数据更新(新手上路) 啃了好久的语法,想转到环境下试试,就tmd的处处是错,想看个简单的都不行…… 为什么sql语句不能存入数据库? 手机短信发送条形码 WIN计划任务 不能自动运行
{
List<int> il = new List<int>();
for (int i = 0; i < 100; i++)
il.Add(i);
List<int> f1 = il.FindAll(item => item % 2 == 0);
var f2 = il.Where(item => item % 2 == 0);
foreach (int fi1 in f1)
Console.Write("{0} ", fi1);
Console.WriteLine();
foreach (int fi2 in f2)
Console.Write("{0} ", fi2);
}
从使用上看,两者都是使用item=>item%2==0这一lambda语句作为参数,但是两者却并不相同,前者使用的是Predicate<T>委托,而后者却是Func<T, bool>委托。
有关这两个委托的介绍,您可以参考:http://www.sunnychen.org/article.asp?id=86
findall是直接返回一个包含满足条件的结果集
而where返回的只是一个查询变量,只有你调用foreach的时候才会
去执行查询,要想和findall效果一样还得 where(XX).ToList();