Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 可枚举。其中(谓词)与可枚举。全部(谓词)_C#_.net_Linq - Fatal编程技术网

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/

噢,天哪,我在想什么?:)我发这封信的时候一定是半睡半醒!