gpt4 book ai didi

c# - All 与 Any LINQ 查询的组合意味着什么

转载 作者:行者123 更新时间:2023-11-30 23:18:24 24 4
gpt4 key购买 nike

我有一行代码:

bool true/false = array1.All(a => array2.Any(t => t.field == a.field));

我不明白 all + any 的这种组合。

这是否意味着“array1 的任何字段都不等于 array2 的任何字段”然后返回 true?

这会不会与 array1.Except(array2).Any(); 相同?

更新

我不小心放了一个“!”在 .Any() !!! 之前

最佳答案

我认为它们确实不同,这也取决于您的array 结构。如果它只有 field 属性,或者它还有其他属性。


代码检查

array1.All(a => array2.Any(t => t.field == a.field));

Return true if For each element in array1 there's at least one element in array2 that has the same value for the field property


array1.Except(array2).Any();

Return True if there's at least one element of array1 not present in array2


现在给定您的上下文,如果 field 是您结构的唯一属性,它会产生相同的结果,但如果还有其他事情发生,则不会。

例如

struct Test
{
public string int { get; set; }
public string int { get; set; }
}

//...

var array1 = new Test[]
{
new Test { Field = 0, OtherField = 1 },
new Test { Field = 1, OtherField = 2 }
}

var array2 = new Test[]
{
new Test { Field = 0, OtherField = 1 },
new Test { Field = 2, OtherField = 2 }
}

第一种情况:对于 array1 的每个元素,array2 中至少有一个元素在 field 属性中具有相同的值,这是真的吗? 错误

第二种情况:array1 中至少有一个元素不存在于array2 中是真的吗? 正确

关于c# - All 与 Any LINQ 查询的组合意味着什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40921012/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com