C# linq问题

来源:百度知道 编辑:UC知道 时间:2024/06/14 13:19:55
IEnumerable<T>
的where,select ,findall,takewhile... 有什么不一样吗,如果功能相同为什么做这么多重复效果的方法

是不一样的!

where:基于谓词筛选值序列.将在谓词函数逻辑中使用每个元素的索引

select: 通过合并元素的索引将序列的每个元素投影到新表中

takewhile:只要满足指定的条件,就会返回序列的元素,将在谓词函数的逻辑中使用元素的索引

说明一下

1\ findall:检索与指定谓词定义的条件匹配的所有元素,但不是IEnumerable<T>
的扩展方法.当然你自己也可以实对该方法的扩展

2\ select和其三个是完全不一样的,我们可以理解为select用作筛选器,而另外三个用作过滤过器.
可能有你使用的时候是这种类式如:
IEnumerable<T>.select(x=>x);
这样结果是一样误导了你,重用思想

3\ 方法结果大同小异很多东西都需要探索.想知道具体做了什么有时请输出一下Log 就一目了然了.