我想知道是否可以获取enum值的属性而不是enum本身的属性?例如,假设我有以下enum:usingSystem.ComponentModel;//forDescriptionAttributeenumFunkyAttributesEnum{[Description("NameWithSpaces1")]NameWithoutSpaces1,[Description("NameWithSpaces2")]NameWithoutSpaces2}我想要的是给定枚举类型,生成枚举字符串值的二元组及其描述。值(value)很简单:Arrayvalues=System.Enum.GetValue
在C#中将字符串转换为枚举值的最佳方法是什么?我有一个包含枚举值的HTML选择标记。当页面发布时,我想提取值(将以字符串的形式)并将其转换为相应的枚举值。在理想世界中,我可以做这样的事情:StatusEnumMyStatus=StatusEnum.Parse("Active");但这不是有效代码。 最佳答案 在.NETCore和.NETFramework≥4.0thereisagenericparsemethod:Enum.TryParse("Active",outStatusEnummyStatus);这还包括C#7的新内联out
在C#中将字符串转换为枚举值的最佳方法是什么?我有一个包含枚举值的HTML选择标记。当页面发布时,我想提取值(将以字符串的形式)并将其转换为相应的枚举值。在理想世界中,我可以做这样的事情:StatusEnumMyStatus=StatusEnum.Parse("Active");但这不是有效代码。 最佳答案 在.NETCore和.NETFramework≥4.0thereisagenericparsemethod:Enum.TryParse("Active",outStatusEnummyStatus);这还包括C#7的新内联out
我有以下枚举:publicenumAuthenticationMethod{FORMS=1,WINDOWSAUTHENTICATION=2,SINGLESIGNON=3}但是问题是,当我请求AuthenticationMethod.FORMS而不是id1时,我需要“FORMS”这个词。我找到了解决此问题的以下方法(link):首先我需要创建一个名为“StringValue”的自定义属性:publicclassStringValue:System.Attribute{privatereadonlystring_value;publicStringValue(stringvalue){_v
我有以下枚举:publicenumAuthenticationMethod{FORMS=1,WINDOWSAUTHENTICATION=2,SINGLESIGNON=3}但是问题是,当我请求AuthenticationMethod.FORMS而不是id1时,我需要“FORMS”这个词。我找到了解决此问题的以下方法(link):首先我需要创建一个名为“StringValue”的自定义属性:publicclassStringValue:System.Attribute{privatereadonlystring_value;publicStringValue(stringvalue){_v
我正在构建一个函数来扩展Enum.Parse概念允许在找不到枚举值的情况下解析默认值不区分大小写所以我写了以下内容:publicstaticTGetEnumFromString(stringvalue,TdefaultValue)whereT:Enum{if(string.IsNullOrEmpty(value))returndefaultValue;foreach(TiteminEnum.GetValues(typeof(T))){if(item.ToString().ToLower().Equals(value.Trim().ToLower()))returnitem;}retur
我正在构建一个函数来扩展Enum.Parse概念允许在找不到枚举值的情况下解析默认值不区分大小写所以我写了以下内容:publicstaticTGetEnumFromString(stringvalue,TdefaultValue)whereT:Enum{if(string.IsNullOrEmpty(value))returndefaultValue;foreach(TiteminEnum.GetValues(typeof(T))){if(item.ToString().ToLower().Equals(value.Trim().ToLower()))returnitem;}retur
这个问题在这里已经有了答案:关闭10年前。Thisquestionalreadyhasananswerhere:HowdoIenumerateanenuminC#?26answerspublicenumFoos{A,B,C}有没有办法遍历Foos的可能值?基本上?foreach(FooinFoos)
这个问题在这里已经有了答案:关闭10年前。Thisquestionalreadyhasananswerhere:HowdoIenumerateanenuminC#?26answerspublicenumFoos{A,B,C}有没有办法遍历Foos的可能值?基本上?foreach(FooinFoos)
有时我会看到如下枚举:[Flags]publicenumOptions{None=0,Option1=1,Option2=2,Option3=4,Option4=8}我不明白[Flags]属性到底做了什么。有人可以发布很好的解释或示例吗? 最佳答案 [Flags]属性应在可枚举表示可能值的集合而不是单个值时使用。此类集合通常与按位运算符一起使用,例如:varallowedColors=MyColor.Red|MyColor.Green|MyColor.Blue;请注意,[Flags]属性不会自行启用此功能-它所做的只是允许通过.To