gpt4 book ai didi

c# - 评估 n 个变量之间的相等性,而不检查每一对

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

如果不对 N 个变量中的每一个进行全面比较,不确定这是否可行。

对于 int 或 float,我可以使用简单的数学运算来判断数字是否相同;求和,然后除以元素的数量。

但是如果我想检查 3 个变量是否包含相同的字符串,我不能使用这种方法。var1 和 var2 可能相同,或者 var3 和 var 1 相同,并且 var2 和 var3 也可能相同。据我了解,除非您对每个变量进行比较,否则无法知道该变量的内容是否相同。

我是否遗漏了什么或者有更简单的方法?

具有 3 个变量的示例:

string var1 = "hello";
string var2 = "there";
string var3 = "hello";

if (var1 == var2 || var1 == var3 || var2 == var3)
//got a duplicate
else
//all are different

想象一下要比较 20 个变量,写一个比较语句需要很长时间。

对我来说,这听起来类似于搜索算法,我可以将我可能应用于排序二分搜索的相同概念应用吗?

最佳答案

将它们放入一个集合中,那么您的生活就容易多了。

一种微妙但有效的方法是使用 HashSet<> :

string[] collection = { var1, var2, var3 };
var set = new HashSet<string>();
bool noDuplicate = collection.All(set.Add);

HashSet.Add 返回 true是否可以添加该项目(如果该项目尚不存在)。所以这个集合不允许重复。 Enumerable.All将在第一个 false 停止枚举.如果所有都是唯一的,则所有都可以添加到集合中并且 noDuplicate将是 true .

关于c# - 评估 n 个变量之间的相等性,而不检查每一对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35574104/

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