草庐IT

c# - Enum.HasFlag,为什么没有 Enum.SetFlag?

我必须为我声明的每个标志类型构建一个扩展方法,如下所示:publicstaticEventMessageScopeSetFlag(thisEventMessageScopeflags,EventMessageScopeflag,boolvalue){if(value)flags|=flag;elseflags&=~flag;returnflags;}为什么没有Enum.SetFlag就像有Enum.HasFlag一样?另外,为什么这并不总是有效?publicstaticboolGet(thisEventMessageScopeflags,EventMessageScopeflag){r

C# 获取枚举值

我有一个包含以下内容的枚举(例如):英国,美国,法国,葡萄牙在我的代码中,我使用了Country.UnitedKingdom,但是如果我将它分配给一个string,我希望它的值为UK.这可能吗? 最佳答案 您不能将枚举值分配给作为开头的字符串。你必须调用ToString(),这将转换Country.UnitedKingdom到“联合王国”。有两种选择:创建Dictionary一个switch语句用一个属性装饰每个值,并用反射加载它关于他们每个人的评论...Dictionary的示例代码usingSystem;usingSystem.

C# 获取枚举值

我有一个包含以下内容的枚举(例如):英国,美国,法国,葡萄牙在我的代码中,我使用了Country.UnitedKingdom,但是如果我将它分配给一个string,我希望它的值为UK.这可能吗? 最佳答案 您不能将枚举值分配给作为开头的字符串。你必须调用ToString(),这将转换Country.UnitedKingdom到“联合王国”。有两种选择:创建Dictionary一个switch语句用一个属性装饰每个值,并用反射加载它关于他们每个人的评论...Dictionary的示例代码usingSystem;usingSystem.

c# - 你能在运行时添加到枚举类型吗

如果我有枚举类型:publicenumSport{Tennis=0;Football=1;Squash=2;Volleyball=3;}我可以在运行时以某种方式添加:PingPong=4 最佳答案 枚举有一个后备存储,如果不指定则默认为int。可以直接分配定义值之外的值:SportpingPong=(Sport)4;然后你可以检查它:if(value==(Sport)4){}这就是为什么你有静态函数Enum.IsDefined()用于检查实际值是否在预期值范围内。请注意,该函数不适用于复合标志值。boolisValueDefined

c# - 你能在运行时添加到枚举类型吗

如果我有枚举类型:publicenumSport{Tennis=0;Football=1;Squash=2;Volleyball=3;}我可以在运行时以某种方式添加:PingPong=4 最佳答案 枚举有一个后备存储,如果不指定则默认为int。可以直接分配定义值之外的值:SportpingPong=(Sport)4;然后你可以检查它:if(value==(Sport)4){}这就是为什么你有静态函数Enum.IsDefined()用于检查实际值是否在预期值范围内。请注意,该函数不适用于复合标志值。boolisValueDefined

c# - 将列表转换为 IEnumerable<SelectListItem>

这里有一个棘手的问题。我正在尝试将列表项转换为IEnumerable.列表dynamicTextInDatabase只需返回我的数据库中使用的所有枚举。目前只返回1和2。数据类simple持有一个int值。dynamicTextEnumsInDatabase与上面的列表相同,只是在实际存储我的枚举的类中。dynamicTextEnumsAll是我的应用程序中可用的所有枚举的列表。当前:1、2和3。dynamicTextEnumsAvaiable是所有未使用的枚举的列表。它组合所有枚举,然后删除数据库列表中的枚举。我需要通过dynamicTextEnumsAvaiable通过ViewBa

c# - 将列表转换为 IEnumerable<SelectListItem>

这里有一个棘手的问题。我正在尝试将列表项转换为IEnumerable.列表dynamicTextInDatabase只需返回我的数据库中使用的所有枚举。目前只返回1和2。数据类simple持有一个int值。dynamicTextEnumsInDatabase与上面的列表相同,只是在实际存储我的枚举的类中。dynamicTextEnumsAll是我的应用程序中可用的所有枚举的列表。当前:1、2和3。dynamicTextEnumsAvaiable是所有未使用的枚举的列表。它组合所有枚举,然后删除数据库列表中的枚举。我需要通过dynamicTextEnumsAvaiable通过ViewBa

c# - AutoMapper 可以在值类型(枚举)和引用类型之间进行映射吗? (字符串)

奇怪的问题-我正在尝试使用AutoMapper在enum和string之间进行映射:Mapper.CreateMap().ForMember(dest=>dest,opt=>opt.MapFrom(src=>src.ToString()));别担心我使用的是.ToString(),实际上我是在枚举本身上使用扩展方法(.ToDescription()),但是为了这个问题,我一直保持简单。当我只是简单地设置映射时,上面会抛出一个对象引用错误。考虑到这项工作:stringenumString=MyEnum.MyEnumType.ToString();我不明白为什么我的AutoMapper配置

c# - AutoMapper 可以在值类型(枚举)和引用类型之间进行映射吗? (字符串)

奇怪的问题-我正在尝试使用AutoMapper在enum和string之间进行映射:Mapper.CreateMap().ForMember(dest=>dest,opt=>opt.MapFrom(src=>src.ToString()));别担心我使用的是.ToString(),实际上我是在枚举本身上使用扩展方法(.ToDescription()),但是为了这个问题,我一直保持简单。当我只是简单地设置映射时,上面会抛出一个对象引用错误。考虑到这项工作:stringenumString=MyEnum.MyEnumType.ToString();我不明白为什么我的AutoMapper配置

c# - 在 C# 中使用枚举作为泛型类型参数

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:EnumtypeconstraintsinC#是否可以通过使用其包装类Enum将enum类型用作通用参数?我有不同的枚举:enumerrors1{E1,E3,E8};enumerrors2{E0,E2,E9};enumerrors3{E7,E4,E5};通过下面的类声明我认为我可以实现它:publicclassMyErrorswhereT:Enum{Tenumeration;publicTgetEnumeration(){returnenumeration;}staticvoidMain(string[]ar