C#を使用してLinqで文字列を列挙型に変換するには?
以下の型キャストはlinqでも機能しますか?:
(Audience)Enum.Parse(typeof(Audience), value, true);
はいの場合、これをどのように使用できるか教えてください。
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);