Оператор Switch() case: сравнение с диапазоном чисел - C#
Формулировка задачи:
Добрый день. Помогите с синтаксисом записи оператора Switch.
Мне нужно после case сравнивать не с одним числом, а с диапазоном чисел.
Например,
Как записать этот диапазон?
Switch (b)
{
Case тут диапазон от 1 до 25: операторы(тут понятно);
}Решение задачи: «Оператор Switch() case: сравнение с диапазоном чисел»
textual
Листинг программы
using System;
using System.Linq;
using System.Collections;
using System.Collections.Generic;
namespace ConsoleApplication1
{
class Program
{
static int[] separators = new int[] { 0, 15, 36, 400 };
static void Main(string[] args)
{
for (int i = 1; i < separators.Count(); i++)
if( separators[i-1]>separators[i])
{
Console.WriteLine("диапазон задан немножко криворуко");
Console.Read();
return;
}
int current = new Random().Next(-100, 500);
switch (GetRange(current))
{
case int.MinValue:
{
Console.WriteLine("число принадлежит диапазону (" + int.MinValue + ";" + separators[0] + "]");
break;
}
case 1:
{
Console.WriteLine("число принадлежит диапазону (" + separators[0] + ";" + separators[1] + "]");
break;
}
case 2:
{
Console.WriteLine("число принадлежит диапазону (" + separators[1] + ";" + separators[2] + "]");
break;
}
case 3:
{
Console.WriteLine("число принадлежит диапазону (" + separators[2] + ";" + separators[3] + "]");
break;
}
case int.MaxValue:
{
Console.WriteLine("число принадлежит диапазону (" + separators[2] + ";" + int.MinValue + ")");
break;
}
}
Console.Read();
}
static int GetRange(int value)
{
if (value <= separators[0])
return int.MinValue;
for (int i = 1; i < separators.Count(); i++)
if (value <= separators[i]) return i;
return int.MaxValue;
}
}
}