鉴于这段代码采用整数数组并检查哈希集中的重复项:
public static int ReturnDuplicatedNumber(HashSet<int> hashSet, int[] integerArray)
{
for (int index = 0; index < integerArray.Length; index++)
{
if (!hashSet.Add(integerArray[index]))
{
return integerArray[index];
}
}
//here
}
在它说//here不需要返回整数的地方,我能做些什么吗?也许发送某种没有找到重复项的异常?
我考虑过如果没有找到重复项就返回 0,但感觉有点不对劲,因为数组中可能有一个 0 重复项,这可能会把事情搞砸。
我已经尝试过这种方式,返回一个字符串而不是一个 int,并且它有效,但它似乎只是一种变通方法而不是实际修复。如果我真的需要从函数返回一个 int 怎么办?
public static string ReturnDuplicatedNumber(HashSet<int> hashSet, int[] integerArray)
{
for (int index = 0; index < integerArray.Length; index++)
{
if (!hashSet.Add(integerArray[index]))
{
return integerArray[index].ToString();
}
}
return "No duplicates found";
}
解决这个问题最聪明的方法是什么?