创建枚举类以分配索引

时间:2018-04-06 12:18:31

标签: c#

我从输入中得到一个字符串,我想给它一个如下的索引:

例如:

string Name = "Jack"

有五种可能性:

Jack   = 1, 
Alice  = 2,
Stiven = 3,
Alex   = 4,
Katrin = 5

当我从输入中获取Name时,我想通过这个枚举类并获取它的索引

4 个答案:

答案 0 :(得分:6)

更好地使用字典,它们的确意味着存储一个与给定对象相对应的值。

Dictionary<string, int> dict = new Dictionary<string, int>() { 
  {"Jack", 1 }, {"Alice", 2 }, {"Steven", 3 }, {"Alex", 4 }, {"Katrin", 5 }};

string name = "Jack";

int value = dict[name]; // returns 1

答案 1 :(得分:2)

首先声明一个枚举:

enum Names
{
    Jack = 1,
    Alice = 2,
    Stiven = 3,
    Alex = 4,
    Katrin = 5
}

然后使用Enum.TryParse获取与"Jack"匹配的枚举,最后将myNames转换为int以获取所需的索引:

string Name = "Jack";
Names myNames;
Enum.TryParse(Name, out myNames);
int index = (int)myNames;

答案 2 :(得分:1)

您可以按照以下方式尝试Enum.TryParse: -

string Name="Jack";
enum CustomEnum {
  Jack=1,
  Alice=2,
  Stiven=3,
  Alex=4,
  Katrin=5
}

CustomEnum TheName;
if (Enum.TryParse(Name, out TheName))
{
    switch (TheName) { 
      case Jack: /* code here*/ break;
      case Alice: /* code here*/ break;
      /* and so on */
    }
}

答案 3 :(得分:1)

试试这个。

using System;

public class Test {
 enum Names {
  Jack = 1,
   Alice,
   Stiven,
   Alex,
   Katrin
 };
 public static void Main() {

  string Name = "Alex";
  Names eName;
  Enum.TryParse < Names > (Name, out eName);
  Console.WriteLine((int) eName);
 }
}

在这里演示:https://ideone.com/ArhV67