【问题标题】:how to get string value from Enum [duplicate]如何从枚举中获取字符串值 [重复]
【发布时间】:2017-07-03 17:04:29
【问题描述】:

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

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"

}

错误 - 无法将字符串转换为 enum.Status

public class Customer
{
  public string Name { get; set;}
  public string Status {get; set;}
}

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

(没有 If-Else 或 switch 阶梯)

【问题讨论】:

标签: c# asp.net enums


【解决方案1】:

您只需拨打.ToString

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

ToString() on Enum from MSDN

如果你传递了 enum Id,你可以运行:

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

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

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

public void CreateStatus(Status status , string userName)

然后调用它:

CreateStatus(1,"whatever");

并转换为字符串:

t.Status = status.ToString();

【讨论】:

  • 我在传(int)enumId 可以是0也可以是1,这样怎么映射
  • @Kgn-web 检查我编辑的答案,您需要将 int 转换为枚举
【解决方案2】:

您可以使用 ToString() 方法轻松获取枚举的字符串值。

enum Status
{
   Success = 1,
   Error = 0
}

string foo = Status.Success.ToString(); 

更新

如果您在方法的输入中包含 Enum 的类型,如下所示:

public void CreateStatus(Status enums, string userName)
{
     Customer t = new Customer();
     t.Name = userName;
     t.Status = enums.Success.ToString();

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-04-04
    • 1970-01-01
    • 2022-11-10
    • 2010-10-10
    • 2010-12-07
    • 1970-01-01
    • 2013-07-18
    相关资源
    最近更新 更多