次のenum
宣言があります。
enum MyType
{
Boolean,
Int,
Double,
String
}
次に、 がある場合、値が列挙値に対応する bool、int、double、または string のいずれであるstring abc = "anyvalue"
かを確認するにはどうすればよいですか?abc
myType
次のenum
宣言があります。
enum MyType
{
Boolean,
Int,
Double,
String
}
次に、 がある場合、値が列挙値に対応する bool、int、double、または string のいずれであるstring abc = "anyvalue"
かを確認するにはどうすればよいですか?abc
myType
メソッドを使用できますEnum.TryParse
。値が列挙値の 1 つに正常に解析され、解析された列挙値も出力された場合、これは true を返します。
解析を実行するときに大文字と小文字を区別したくない場合は、ブール値パラメーターを受け入れるオーバーロードを使用します。
MyType type;
if (Enum.TryParse(abc, out type))
{
// can be parsed
switch (type)
{
case MyType.Boolean: break;
case MyType.Int: break;
case MyType.Double: break;
case MyType.String: break;
}
}
使用することもできますEnum.IsDefined
が、このメソッドは常に大文字と小文字を区別して検索を行うため、柔軟性が低くEnum.TryParse
、名前が定義されているかどうかを知るためにしか使用できません。
これを使って:
MyType dummy;
if(bool isEnum = Enum.TryParse(mystring,out dummy))
{
// mystring is a valid enum
}