0

次のような列挙型クラスがあります。

namespace Import.DataObject
{
    internal enum Status
    {
        FullTime,
        Terminated,
    }
}

私のメインプログラムでは、DB呼び出しがあり、次に

  foreach (ClientStatus status in databaseStatus)
            {
                if (status.Name == "FullTime")
                {
                }
                if (status.Name == "Terminated")
                {
                }

            }

if ステートメントに基づいて列挙型を設定するにはどうすればよいですか? 名前には関連付けられた ID があり、その ID を列挙型のそれぞれの名前に設定したいのですが、if ステートメント内で名前と ID の両方を使用できます。

4

1 に答える 1

2

使用Enum.Parse:

Status val = (Status)Enum.Parse(typeof(Status), status.Name);

文字列が有効な列挙型であるかどうかわからない場合は、次を使用しますEnum.TryParse

Status? val;
if (!Enum.TryParse<Status>(status.Name, out val))
    val = null;

次に、(int) にキャストして数値を取得します。

status.ID = (int)val;
于 2012-10-22T16:07:27.590 に答える