Как избавится от switch case? - C#
Формулировка задачи:
Как избавится от большого swich case
допустим вот такой, хотя у меня он намного больше.
Может можно с помощью списков?
switch (ScKspeed)
{
case 128:
ConfigString[0] = "8_MHz";
break;
case 0:
ConfigString[0] = "4_MHz";
break;
case 129:
ConfigString[0] = "2_MHz";
break;
case 1:
ConfigString[0] = "1_MHz";
break;
case 130:
ConfigString[0] = "500_KHz";
break;
case 3:
ConfigString[0] = "125_KHz";
break;
default:
ConfigString[0] = "1_MHz";
break;
}Решение задачи: «Как избавится от switch case?»
textual
Листинг программы
using System;
using System.Collections.Generic;
namespace ConsoleApplication3
{
internal class Program
{
private static void Main(string[] args)
{
var dic = new Dictionary<int, string> {{1, "one"}, {2, "two"}, {3, "three"}};
// значение ключ которого мы хотим найти
const string FIND_VALUE = "one";
// ключ
// int? тип который может принимать значение null
int? key = null;
// ищем ключ в цикле
// если нескольким ключам соответствуют одинаковые значения, будет выбран первый
foreach (var d in dic.Keys)
{
if (dic[d] == FIND_VALUE)
{
key = d;
break;
}
}
// если ключ был найден
if (key != null)
{
Console.WriteLine(Convert.ToString(key));
}
// если совпадения не было
else
{
Console.WriteLine("key not found");
}
Console.ReadKey();
}
}
}