私はまたstring pet = "Dog"
を持っているこの'name'の文字列表現からenum値を選択するにはどうすればよいですか?
public enum PetType
{
Dog = 1,
Cat = 2
}
のような列挙型を持っています。 1を返すには?私が考えている擬似コードは次のとおりです。
select Dog_Id from PetType where PetName = pet
私はまたstring pet = "Dog"
を持っているこの'name'の文字列表現からenum値を選択するにはどうすればよいですか?
public enum PetType
{
Dog = 1,
Cat = 2
}
のような列挙型を持っています。 1を返すには?私が考えている擬似コードは次のとおりです。
select Dog_Id from PetType where PetName = pet
は、intにキャスト、文字列から列挙型の値を取得するためにEnum.Parse
メソッドを使用します。
string pet = "Dog";
PetType petType = (PetType)Enum.Parse(typeof(PetType), pet);
int petValue = (int)petType;
(PetType)Enum.Parse(typeof(PetType), pet)
あなたは.NETを使用している場合4あなたはEnum.TryParse
PetType result;
if (Enum.TryParse<PetType>(pet, out result))
return (int)result;
else
throw something with an error message
その他は、すでにEnum.Parseを(使用することを示唆した使用)しかし、この方法には注意してくださいすることができ列挙型の名前を解析するだけでなく、その値に一致させようとするためです。 は、それは明らかだが、小さな例をチェックしてみましょうするには:
PetType petTypeA = (PetType)Enum.Parse(typeof(PetType), "Dog");
PetType petTypeB = (PetType)Enum.Parse(typeof(PetType), "1");
両方の結果は、呼び出しは(当然のint型にキャストすることができます)PetType.Dogになります解析します。
ほとんどの場合、このような動作はOKですが、必ずしもそうではありません。これは、Enum.Parse()メソッドの動作を覚えておく価値があります。
私は文字列表現から列挙型を作成するにはどうすればよい[の
int pet=1;
PetType petType = (PetType)Enum.Parse(typeof(PetType), pet.ToString());
それとも
string pet="Dog";
PetType petType = (PetType)Enum.Parse(typeof(PetType), pet);
既に番号がある場合は、 'petType =(PetType)1' –
はい、それは他の方法で表示された結果であり、この回答は他のコメントにありました –
が重複する可能性のようなパラメータとして文字列を使用できますか? c#](http://stackoverflow.com/questions/1130377/how-do-i-create-an-enum-from-a-string-representation-c-sharp) – nawfal