gpt4 book ai didi

c# - 在两个 HashSet 中搜索

转载 作者:行者123 更新时间:2023-11-30 21:44:03 26 4
gpt4 key购买 nike

我有这个方法:

bool CheckIfAvailable(HashSet<int> hayStack1, HashSet<int> hayStack2, int needle) {
}

我正在尝试执行以下操作:如果 hayStack1hayStack2 均为 null,则该方法应返回 true,如果其中一个不是 null needle 应该在其中以返回 true,如果它们都不是 null needle 可以在其中之一或两者中都是 true

我可以做到,但是我的方法很乱,有什么办法可以优雅地做到这一点吗?

最佳答案

bool CheckIfAvailable(HashSet<int> hayStack1, HashSet<int> hayStack2, int needle)
{
bool? s1 = hayStack1?.Contains(needle);
bool? s2 = hayStack2?.Contains(needle);
if (s1 ?? s2 ?? true) return true;
return s2 == true;
}

解释:

if (s1 ?? s2 ?? true) 仅在以下情况下变为真:

s1 == s2 == null Or s1 == true || (s1 == null && s2 == true)

return s2 == true; 由于 s1 可能变为 false,因此我们检查 s2 是否为真。

可以用单个 return 语句代替。

bool CheckIfAvailable(HashSet<int> hayStack1, HashSet<int> hayStack2, int needle)
{
bool? s1 = hayStack1?.Contains(needle);
bool? s2 = hayStack2?.Contains(needle);
return (s1 ?? s2 ?? true) || s2 == true;
}

关于c# - 在两个 HashSet 中搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41086042/

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