EnumのTryParse

第1引数には変換する文字列を指定する。 第2引数には変換された値を受け取る型の変数を指定する。

Enum.Parse とは異なり、例外をスローすることなく、変換できる。

Foo foo;
if (!Enum.TryParse(bar.ToString(), out foo))
{
    throw new InvalidCastException($"Fooには定義されていない値が選択されてます");
}

参考:Enum.TryParse(TEnum) メソッド (String, TEnum) (System)