关于c#:如何从Enum获取字符串值

how to get string value from Enum

本问题已经有最佳答案,请猛点这里访问。

我对枚举感到困惑。这是我的枚举

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
enum Status
{
   Success = 1,
   Error = 0
}


public void CreateStatus(int enumId , string userName)
{
     Customer t = new Customer();
     t.Name = userName;
    // t.Status = (Status)status.ToString(); - throws build error
     t.Status = //here I am trying if I pass 1 Status ="Success", if I pass 0 Status ="Error"

}

Error - Cannot convert string to enum.Status

1
2
3
4
5
public class Customer
{
  public string Name { get; set;}
  public string Status {get; set;}
}

如何使用枚举状态设置客户对象的状态属性?

(如有其他情况则不允许,或切换梯子)


你只需要打电话给.ToString

1
 t.Status = Status.Success.ToString();

msdn中枚举的ToString()。

如果已传递枚举ID,则可以运行:

1
t.Status = ((Status)enumId).ToString();

它将整数强制转换为枚举值,然后调用ToString()

编辑(更好的方法):您甚至可以将方法更改为:

1
public void CreateStatus(Status status , string userName)

并称之为:

1
CreateStatus(1,"whatever");

并转换为字符串:

1
t.Status = status.ToString();


使用toString()方法获取枚举的字符串值很容易。

1
2
3
4
5
6
7
enum Status
{
   Success = 1,
   Error = 0
}

string foo = Status.Success.ToString();

更新

如果将枚举类型包含在方法的输入中(如下所示),则更容易:

1
2
3
4
5
6
7
public void CreateStatus(Status enums, string userName)
{
     Customer t = new Customer();
     t.Name = userName;
     t.Status = enums.Success.ToString();

}