如何使用 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);
所以,是的,类型转换工作。但是,请记住,上面的查询将抛出
ArgumentException
如果 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);
关于linq - 在 Linq to SQL 中将字符串转换为枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10494704/