我在将多个if语句(如下面的示例)转换为更紧凑的代码时遇到问题。我虽然是关于表或多维数组的,但是也许你们知道更好的解决方案。我的代码中大约有30条if语句,它们中没有明确的模式,以便轻松地将该代码转换为更快,更紧凑的代码。
我该如何改善?
if (D == 0.25)
{
if (threadPerInch == 20)
{
le = 0.22;
}
else if (threadPerInch == 28)
{
le = 0.25;
}
else if (threadPerInch == 32)
{
le = 0.28;
}
else
{
}
}
最佳答案
由于仅检查是否相等,因此应使用实质上允许直接执行此查找的字典。为此,将threadPerInch
到le
的映射定义为某个地方的字典,例如作为班级成员:
Dictionary<int, double> leForThreadPerInch = new Dictionary<int, double>() {
[20] = 0.22,
[28] = 0.25,
[32] = 0.28
};
然后,您可以尝试从中检索值以获得
le
值:if (D == 0.25)
{
if (!leForThreadPerInch.TryGetValue(threadPerInch, out le))
{
// else case
}
}
关于c# - 如何在C#中将多个if语句i替换为更紧凑的代码/类?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40780626/