将Linq中的字符串转换为枚举为SQL

Kan*_*vas 3 linq type-conversion linq-to-sql c#-3.0

如何使用C#将Linq中的字符串转换为枚举?

下面的类型转换是否也适用于linq?:

(Audience)Enum.Parse(typeof(Audience), value, true);
Run Code Online (Sandbox Code Playgroud)

如果是,请告诉我如何使用它?

ReP*_*rre 6

鉴于枚举

enum Foo{A, B, C}
Run Code Online (Sandbox Code Playgroud)

下面的代码从执行转换enumstring反之亦然:

var values = 
from name in Enum.GetNames(typeof(Foo))
select (Foo)Enum.Parse(typeof(Foo), name, true);
Run Code Online (Sandbox Code Playgroud)

所以,是的铸造工作.但是,请记住,上面的查询将抛出ArgumentExceptionif Enum.Parse方法接收无法解析的值.

此更新版本仅返回成功解析的值

enum Foo{A, B, C}

var values =  
   from name in Enum.GetNames(typeof(Foo))
   where Enum.IsDefined(typeof(Foo), name)
   select (Foo)Enum.Parse(typeof(Foo), name, true);
Run Code Online (Sandbox Code Playgroud)