【发布时间】:2015-04-21 17:22:34
【问题描述】:
在这里筋疲力尽的菜鸟。我基本上有两个问题...
抱歉,开关位于一个循环中,该循环获取一堆数字,然后使用 OrderByDescending() 对它们进行排序。我的问题是现在我不知道有哪些数字,我只知道它们是按降序排列的。现在我优先考虑数字,某些特定数字对我来说比其他数字更重要(这背后没有规则或逻辑)。但另一方面,我正在寻找的数字都不可能在里面,因此作为“默认”返回或使用集合内的最高数字。
1:switch-cases 的顺序是否敏感? 假设我打开 1 到 5 的范围,并且对我来说 4 的优先级高于其他优先级,那会按预期工作吗?
switch(number)
{
case 4: DoFancyStuff(); break;
case 3: NotTooFancy(); break;
case 1: StillOk(); break;
case 2: Bad(); break;
case 5: SuperBad(); break;
default:break;
}
无论如何,让我们进一步假设数字是按降序排列的。但我现在不知道number 的可能范围,可能是 2、4、8、16 等,但可能缺少一个数字:2、4、16、...
如果我不得不说
switch(number)
{
case 32: Nice(); break;
case 64: OkToo(); break;
case 128: Nah(); break;
case 8: OkStillTakeIt(); break;
default: break;
}
因此,由于数字是按降序排列的,大的排在第一位,但它们没有最高优先级,因此可能会有一个具有最高(优先级)的数字(第一种情况)出现,但也不必如此。 ..如果没有合适的,我想拿最高的,但那是“丢失”。
我该如何解决这个问题?还是我只是想多了?方法错误?想了想我的脑袋都快炸了。
【问题讨论】:
-
你为什么不先尝试一下,然后你应该有你的答案。
-
是的,在我添加我的澄清后,否决票会被删除,这让我的问题更有意义......?
-
虽然我已经写了一个顶级问题的答案,但你涵盖了很多领域。我建议您回去重新思考您的方法,并编写一个新问题,明确定义您要达到的目标以及您的方法如何使您失败。
-
我认为重复涵盖了您正在寻找的很多信息,特别是在this 答案中。请注意,在大多数实际情况(有几个选择)中,您不太可能看到任何差异,并且该问题的答案很好地涵盖了该部分。
标签: c#