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

将Linq到SQL中的字符串转换为枚举,linq,linq-to-sql,c#-3.0,type-conversion,Linq,Linq To Sql,C# 3.0,Type Conversion,如何使用C#将Linq中的字符串转换为枚举 下面的类型转换是否也适用于linq (Audience)Enum.Parse(typeof(Audience), value, true); 如果是,请告诉我如何使用此功能?给定枚举 enum Foo{A, B, C} 下面的代码执行从enum到string的转换,反之亦然: var values = from name in Enum.GetNames(typeof(Foo)) select (Foo)Enum.Parse(typeof(Foo

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

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

(Audience)Enum.Parse(typeof(Audience), value, true);
如果是,请告诉我如何使用此功能?

给定枚举

enum Foo{A, B, C}
下面的代码执行从
enum
string
的转换,反之亦然:

var values = 
from name in Enum.GetNames(typeof(Foo))
select (Foo)Enum.Parse(typeof(Foo), name, true);
所以,是的,铸造工作。但是,请记住,如果
Enum.Parse
方法接收到无法解析的值,则上面的查询将抛出
ArgumentException

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

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);

Enum.IsDefined可用于避免ArgumentException@Tilak非常感谢。更新版本可在以下网址找到: