我有一个大的开关盒,我也有一个整数列表说{1610616833,1610747905,1610878977,1610878977,1611010049} 我想做以下
int a;
switch (incomingint)
{
case 1:
//some code
break;
case 2:
//some code
breakl
//now i want to check if this one is one of the list's integers or not
//so i did the following
case 1610616833:
a=0;
break;
case 1610747905:
a=1;
break;
case 1610878977:
a=2;
break;
}
问题是:
答案 0 :(得分:3)
您可以使用字典进行此转换:
Dictionary<int, int> transformation = new Dictionary<int, int>
{
{ 1000, 0 },
{ 1001, 1 },
// etc
};
int a = 0; // Default value
if (transformation.TryGetValue(incomingint, out a))
{
// a has the value. If you need to do something else, you might do it here because you know that dictionary had incomingint
}
答案 1 :(得分:2)
您可以创建一个字典,该字典将是您的列表项与a。
的值之间的映射var dict = new Dictionary<int,int>();
dict.Add(1000, 0);
dict.Add(1001, 1);
dict.Add(1002, 5);
...
后来:
a = dict[incomingint];
如果有{em>直接方式从a
计算incomingint
,请在计算中使用incomingint
。您发布的数据看起来很简单:
a = incomingint - 1000;
对于值{1000}及以上的incomingint
。
答案 2 :(得分:1)
似乎你可以通过编写
来优化它if (incomingint > 1000) a = incomingint - 1000;
在其他新闻中,如果列表中有16个整数,则几乎肯定不需要对其进行优化。这是一项微小而快速的工作。