我正在使用Umbraco CMS,它将许多数据保存为字符串。
有时,我需要将存储的值字符串(作为字符串存储的int)与枚举进行比较,但最好的方法是将它们作为字符串进行比较:
if ( stringValue == ( (int) Enum.Option ).ToString() ){
}
或者将其解析为整数并进行比较:
if ( int.Parse(stringValue) == (int) Enum.Option ){
}
或者两种方式都无所谓!如果有任何疑问,请随时联系我们。
我正在使用Umbraco CMS,它将许多数据保存为字符串。
有时,我需要将存储的值字符串(作为字符串存储的int)与枚举进行比较,但最好的方法是将它们作为字符串进行比较:
if ( stringValue == ( (int) Enum.Option ).ToString() ){
}
if ( int.Parse(stringValue) == (int) Enum.Option ){
}
您应该比较数据的原生/规范形式。因此使用整数。在这种情况下,性能通常是次要关注点。正确性是第一位的。
enum MyEnum
{
Option,
Option1 = 1,
Option2 = 2
}
string stringValue = "0";
if((MyEnum)Enum.Parse(typeof(MyEnum), stringValue) == MyEnum.Option)
{
//Do what you need
}
value
参数包含枚举成员底层值或命名常量的字符串表示形式,或由逗号(,)分隔的命名常量列表。 - Renatas M.Enum.TryParse<T>(string, out T)
。 - abatishchevint value;
Option option;
if (int.TryParse(stringValue, out value) &&
Enum.IsDefined(typeof(Option), value)) {
option=(Option)value;
}
如果您能比较枚举,则会更好。