切换整数表达式的情况

nee*_*MAX 11 .net c#

我试图使用switch case而不是If Else声明,其中我必须首先检查字符串的长度,并根据我必须做出它的情况.

switch (mystring.length)
{
    case <=25:
    {
        //do this
        break;
    }
    case <50:
    {
        //do this
        break;
    }
    default:
        break;
}
Run Code Online (Sandbox Code Playgroud)

这是我想要做的一些事情,但无法获得如何放在<25案例前面,因为根据开关案例规则它是不合适的.

Hab*_*bib 15

对于你的特定情况,使用if/else总是更好,使用switch语句你不能在这种情况下使用条件.看起来你正在检查范围,如果范围是常量,那么你可以尝试以下(如果你想使用switch语句).

int Length = mystring.Length;
int range = (Length - 1) / 25;
switch (range)
{
    case 0:
        Console.WriteLine("Range between 0 to 25");
        break;
    case 1:
        Console.WriteLine("Range between 26 to 50");
        break;
    case 2:
        Console.WriteLine("Range between 51 to 75");
        break;

}
Run Code Online (Sandbox Code Playgroud)

  • @neerajMAX,如果Length为`22`,则它将转到第一种情况,因为`(22-1)/ 25`为`0`,因此它是整数除法:) (2认同)

Ste*_*mez 7

这确实对OP并没有多大帮助,但希望它将对将来寻求帮助的人有所帮助。

如果您使用的是C#7(在Visual Studio 2017中可用),则可以switch

例:

switch (mystring.length)
{
    case int n when (n >= 0 && n <= 25):
    //do this
    break;

    case int n when (n >= 26 && n <= 50 ):
    //do this
    break;
}
Run Code Online (Sandbox Code Playgroud)