相关疑难解决方法(0)

我应该如何将字符串转换为C#中的枚举?

在C#中将字符串转换为枚举值的最佳方法是什么?

我有一个包含枚举值的HTML选择标记.发布页面时,我想获取值(将以字符串的形式)并将其转换为枚举值.

在一个理想的世界里,我可以这样做:

StatusEnum MyStatus = StatusEnum.Parse("Active");
Run Code Online (Sandbox Code Playgroud)

但那不是有效的代码.

c# string enums

797
推荐指数
17
解决办法
63万
查看次数

枚举的扩展方法,而不是枚举的实例

我对我的事情进行了枚举,如下:

public enum Things
{
   OneThing,
   AnotherThing
}
Run Code Online (Sandbox Code Playgroud)

我想为这个枚举编写一个扩展方法(类似于Prize的答案)但是该方法适用于枚举实例,ala

Things thing; var list = thing.ToSelectList();
Run Code Online (Sandbox Code Playgroud)

我希望它能用于实际的枚举:

var list = Things.ToSelectList();
Run Code Online (Sandbox Code Playgroud)

我可以这样做

var list = default(Things).ToSelectList();
Run Code Online (Sandbox Code Playgroud)

但我不喜欢那样:)

我已经接近以下扩展方法:

public static SelectList ToSelectList(this Type type)
{
   if (type.IsEnum)
   {
      var values = from Enum e in Enum.GetValues(type)
                   select new { ID = e, Name = e.ToString() };
      return new SelectList(values, "Id", "Name");
   }
   else
   {
      return null;
   }
}
Run Code Online (Sandbox Code Playgroud)

像这样使用:

var list = typeof(Things).ToSelectList(); …
Run Code Online (Sandbox Code Playgroud)

c# extension-methods enums

44
推荐指数
3
解决办法
3万
查看次数

标签 统计

c# ×2

enums ×2

extension-methods ×1

string ×1