C# 可枚举。其中(谓词)与可枚举。全部(谓词)
这两者之间的区别是什么:C# 可枚举。其中(谓词)与可枚举。全部(谓词),c#,.net,linq,C#,.net,Linq,这两者之间的区别是什么: items.Where(i => i.Foo == "bar") 及 ??看起来他们会做完全相同的事情-实际情况是否如此,或者他们的行为是否以某种微妙的方式有所不同?项。其中-根据条件过滤并返回过滤对象的集合 items.All-如果集合中的所有对象都满足条件,则返回true,否则返回false 看起来不完全一样,是吗?返回一个IEnumerable,并充当集合的过滤器: 可枚举。其中方法 基于谓词筛选值序列 在您的例子中,它返回Foo属性等于“bar”的所有元
items.Where(i => i.Foo == "bar")
及
??看起来他们会做完全相同的事情-实际情况是否如此,或者他们的行为是否以某种微妙的方式有所不同?
项。其中
-根据条件过滤并返回过滤对象的集合
items.All
-如果集合中的所有对象都满足条件,则返回true
,否则返回false
看起来不完全一样,是吗?返回一个IEnumerable
,并充当集合的过滤器:
可枚举。其中方法
基于谓词筛选值序列
在您的例子中,它返回Foo
属性等于“bar”
的所有元素
返回一个
bool
,只检查集合中的所有元素是否满足给定谓词:
可枚举的.All方法
确定序列的所有元素是否满足条件
在您的例子中,当所有元素的Foo
属性等于“bar”
时,它返回true
,否则false返回一个bool值,该值指示所有相关元素是否满足谓词所表示的条件
返回一个泛型IEnumerable集合,该集合只包含满足上述条件的项
我看不到从那些LINQ函数返回的结果之间有任何共同之处——一个是bool,另一个是集合。是的,它们在语法上相似,但在完全不同的情况下使用
一个简单的例子:
假设您有一个int列表:
List-sampleList=新列表{3,4,6,9}
如果你跑
sampleList.All(v => v % 3 == 0);
您将得到false,因为4不满足条件
如果你跑
sampleList.All(v => v % 3 == 0);
其中(v=>v%3==0)
您将收到一个IEnumerable,其中包含满足条件的值:3、6和9/噢,天哪,我在想什么?:)我发这封信的时候一定是半睡半醒!