linq - 在 Linq to SQL 中将字符串转换为枚举

标签 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), 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/

相关文章:

c# - 检查对象列表中的所有属性是否相等

c# - 面向对象的 Linq2Sql 查询类

c# - 如何将排序后的字典输出为 CSV?

wpf - 标记扩展中的 DepedencyProperty

c# - 将 System.Drawing.Image 转换为 System.Data.Linq.Binary

c# - 链式 LINQ 语句的效率如何?

c# - Linq-To-SQL 多次访问数据库

c# - 如何插入具有自动递增编号的新记录作为主键?

c# - 关于 IEnumerable<T> 的问题

c# - 使用 linq 或 IEnumerable 将数组转换为并发字典的任何更好方法?