gpt4 book ai didi

C# LINQ zip : find at least one pair

转载 作者:太空宇宙 更新时间:2023-11-03 19:51:39 26 4
gpt4 key购买 nike

我有两个数组,我想知道某些条件是否满足列表中的至少一对

最小复制代码:

    var boxTypes = new string[] { "Banana", "Apple", "Apple", "Banana" };
var boxSizes = new int[] { 31, 16, 35, 8 };

int bigBoxSize = 20;
bool hasBigAppleBox =
boxTypes.Zip(boxSizes,
(type, size) => (type == "Apple" && size >= bigBoxSize) ? 1 : 0)
.Sum() > 0;

此代码遍历所有对。但是一对就足够了。

有什么改进此代码的建议吗?

最佳答案

你可以这样做:

bool hasBigAppleBox = 
boxTypes.Zip(boxSizes,
(type, size) => type == "Apple" && size >= bigBoxSize)
.Any(x => x);

基本上,对于每一对,此代码都会选择该对的条件结果。这(Zip 方法)返回一个 IEnumerable<bool>。 . Any(x => x)当它遇到第一个 true 时会返回 true在可枚举中。

关于C# LINQ zip : find at least one pair,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38404911/

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