如果声明更优雅

时间:2018-06-19 10:17:55

标签: c# optimization

我希望将值与列表进行比较,然后根据此比较设置另一个变量。

我的清单是

1 = Red
4 = Blue
13 = Green

我可以有一系列if语句,但是有一个大的列表,这看起来很混乱

if (Type == 1)
{
    Name = "Red";
}
else if (Type == 4)
{
    Name = "Blue";
}
else if (Type == 13)
{
    Name = "Green";
}

实现同样目的的有效和整洁方法是什么?

4 个答案:

答案 0 :(得分:4)

利用字典存储你的值,它将使用更少的代码行和可读的代码来创建干净的代码

Dictionary<int, string> data = new Dictionary<int, string>
{
    { 1, "Red" }, 
    { 4, "Blue" },
    { 13, "Green" }
};

string test;
if (data.TryGetValue(1, out test)) // Returns true.
{
   Console.WriteLine(test); 
}

答案 1 :(得分:2)

我认为你需要在这里使用开关:

switch (Type)
  {
      case 1:
          Name = "Red";
          break;
      case 4:
          Name = "Blue";
          break;
      case 13:
          Name = "Green";
          break;
  }

答案 2 :(得分:1)

使用insted的开关语句

  switch (Type)
  {
      case 1:
          Name = "Red";
          break;
      case 4:
          Name = "Blue";
          break;
      case 13:
          Name = "Green";
          break;
  }

答案 3 :(得分:0)

    class Program
    {
        public enum EnumDisplayStatus
        {
            Red = 1,
            Blue = 2,
            Yellow = 3,
            Orange = 4
        }
        static void Main()
        {
            int value = 3;
            EnumDisplayStatus enumDisplayStatus = (EnumDisplayStatus)value;
            string color = enumDisplayStatus.ToString();
            Console.Write(color);
        }
    }

使用enum并以我展示的方式获取字符串。