gpt4 book ai didi

c# - 如何最好地将 VB6 "Select Case 1067 To 2938..."转换为 C#?

转载 作者:太空狗 更新时间:2023-10-29 22:20:45 26 4
gpt4 key购买 nike

我正在将一些 VB6 逻辑转换为 C# 并且遇到了以下 SELECT/CASE 语句。

Select Case ZipCode
Case 1067 To 19417, 35075 To 35085, 48455 To 48465, 55583 To 55596, 67480 To 67551, 75392, 85126, _
93047 To 93059, 21217 To 21739, 35091 To 35096, 48480, 55606 To 55779, 67655 To 67707, 76726 To 76835, _
85221 To 87679, 94315 To 94419, 22844 To 25799, 35102, 48488, 56154 To 56254, 67731 To 67759, 76855 To 76889, _
87719 To 88339, 94428 To 94437, 25868, 35112, 48499 To 48531, 56271, 67824 To 67829, 77761, 88353, 94522, _
25879, 35117, 48653, 56281 To 56299, 69427 To 69429, 77773 To 77776, 88361 To 88364, 94553, 26121 To 26160, _
35216 To 35282, 48720 To 48727, 56321 To 56337, 69437 To 69439, 78048 To 78126, 88368 To 88379, 94559, _
26180 To 26215, 35287 To 35469, 49124 To 49356, 56410 To 56479, 70173 To 71287, 78136 To 79117, 88410, 95028 To 95032, _
26316 To 26389, 35576 To 35768, 49406, 56575, 71332 To 71540, 80331 To 83313, 88481, 95111 To 95152, _
26419, 36110, 49419, 56626 To 56648, 71546 To 71711, 83324 To 83362, 88529, 95176 To 95185, _
26434 To 26441, 36304 To 36358, 49448, 56727 To 56745, 71720 To 72189, 83365 To 83379, 88633, 95188 To 95194, _
26452, 36367 To 36369, 49453, 56751 To 57339, 72250 To 72417, 83413, 88662 To 90491, 95197

我能想到的最好的转换是一系列映射每个范围的 if/then/else 语句,例如

if((ZipCode >= 1067 && ZipCode <=19417) ||
(ZipCode >= 35075 && ZipCode <=35085) ||
...

或者有更好的方法,例如有什么方法可以将这些范围值放入某种散列/数组/集合中?

最佳答案

假设您使用的是 3.5 或更高版本,并且可以访问扩展方法:

如果我有那么多比较,我会为自己创建一个很好的方法:

public static class IntUtils
{
public static bool InRange(this int value, int low, int high)
{
return value <= low && value <= high;
}
}

然后使用它:

if (zipCode.InRange(1067, 19417) ||
zipCode.InRange(35075, 35085) || ...

如果您没有 3.5 或者您不想使用扩展方法:

public static class IntUtils
{
public static bool InRange(int value, int low, int high)
{
return value <= low && value <= high;
}
}

然后使用它:

if (IntUtils.InRange(zipCode, 1067, 19417) ||
IntUtils.InRange(zipCode, 35075, 35085) || ...

关于c# - 如何最好地将 VB6 "Select Case 1067 To 2938..."转换为 C#?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3584395/

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