草庐IT

c# - Enum.GetValues() 上的 OrderBy

我正在从enum中填充MVC4中的DropDownList,我想对枚举值从大到小进行排序。但是,似乎没有直接的方法来解决这个问题。目前,我正在使用此代码添加到字典中,键是ID,值是显示文本:varpriorities=Enum.GetValues(typeof(Models.Priority)).OfType().ToList();for(inti=priorities.Count-1;i>=0;i--){Models.Prioritypriority=priorities[i];prioritiesDictionary.Add((int)priority,"Priority"+((i

c# - 如何防止枚举中的重复值?

我想知道有没有办法阻止具有重复键的enum编译?例如下面的这个enum将编译publicenumEDuplicates{Unique,Duplicate=0,Keys=1,Compilation=1}虽然这段代码Console.WriteLine(EDuplicates.Unique);Console.WriteLine(EDuplicates.Duplicate);Console.WriteLine(EDuplicates.Keys);Console.WriteLine(EDuplicates.Compilation);将打印DuplicateDuplicateKeysKeys

c# - 将 xml 值映射到枚举类型

我需要将从第三方获取的XML文件解析为C#对象。我收到的一些XML具有枚举值,我想将其存储在枚举类型中。例如,我有如下xml文件的xsd:我想将它映射到一个枚举,我做到了这一点:publicenumFuel{B,D,L,E,H,C,O}我遇到的问题是xml可以包含3的值,我似乎无法将其放入枚举类型中。是否有任何解决方案可以将此值放入枚举中。我还可以获得其他带有-或/的值,我想将其放入枚举类型中。欢迎Anu建议! 最佳答案 用XmlEnum属性装饰:http://msdn.microsoft.com/en-us/library/sys

c# - 为枚举元素分配多个值

嗨,我目前有这个枚举[Serializable]publicenumCountry{US=1,Canada=2,}当我通常从数据库中获取整数时,我会使用将其转换为枚举(Country)Convert.ToInt32("1")我现在在美国和加拿大有2个子区域,美国1和2,加拿大3和4。所以当我这样做的时候(Country)Convert.ToInt32("1")或(Country)Convert.ToInt32("2")我应该让枚举成为美国。以及3和4加拿大。我该如何实现?[Serializable]publicenumCountry{US=1,2Canada=3,4}是这样的。这可能不

c# - 在 C# 中扩展枚举

在java中,我习惯于扩展枚举值或覆盖这样的方法:enumSomeEnum{option1("sv"){publicStringtoString(){return"Somevalue";}},option2;privateStringPassedValue;publicSomeEnum(Stringsomevalue){this.PassedValue=somevalue;}publicSomeEnum(){this.PassedValue="DefaultValue";}publicStringgetPassedValue(){returnthis.PassedValue;}}有没有

c# - 如何在 c# xml 文档中引用枚举常量

我想记录枚举类型字段的默认值://////Thedefaultvalueis.///publicOrientationBoxOrientation;编译器警告它无法解析引用。前缀F:或M:会使编译器静音,但E:也会静音,所以我不确定哪个前缀是正确的。 最佳答案 前缀F、M和E都是有效的,可能是编译器警告消失的原因。不过,您应该使用引用字段的F。有关VisualStudio如何生成文档标识符的更多信息,请参阅:ProcessingtheXMLFile(C#ProgrammingGuide)

c# - 在具有多个对应名称的枚举值上调用 ToString() 时,什么决定选择哪个名称?

在具有多个对应名称的enum值上调用ToString()时,什么决定选择哪个名称?问题的详细解释如下。我已经确定这不是由以下任何一个唯一确定的:字母顺序;申报单;也不,名称长度。例如,假设我想要一个枚举,其中数值直接对应于实际用途(例如颜色的rgb值)。publicenumRgbColor{Black=0x000000,Red=0xff0000,Green=0x00ff00,Blue=0x0000ff,White=0xffffff}现在,使用此枚举,调用default(RgbColor)将返回黑色的rgb值。假设我不希望默认值为黑色,因为我希望UI设计人员在没有关于使用什么颜色的具体说

c# - WPF ComboBox 中具有本地化名称的枚举

我有一个列出枚举的ComboBox。enumStatusEnum{Open=1,Closed=2,InProgress=3}我想用英文显示枚举值的本地化名称OpenClosedInProgress还有德语(以及future的其他语言)OffenGeschlossenInArbeit在我的ViewModel中使用publicIEnumerableStatusList{get{returnEnum.GetValues(typeof(StatusEnum)).Cast();}}只获取代码中枚举的名称,而不是翻译后的名称。我有一般本地化,可以使用即访问它们Resources.Strings.I

c# - 使用隐式枚举字段来表示数值是一种不好的做法吗?

使用隐式枚举字段来表示数值一定是一种不好的做法吗?这是一个用例:我想要一种简单的方法来表示十六进制数字,并且由于C#枚举基于整数,因此它们看起来很自然。我不喜欢char或string在这里,因为我必须明确验证它们的值。枚举的问题是数字[0-9]不是有效的字段标识符(有充分的理由)。我突然想到我不需要声明数字0-9,因为它们隐式存在。所以,我的十六进制数字枚举看起来像:publicenumHex:int{A=10,B=11,C=12,D=13,E=14,F=15}所以,我可以写Tupler=Tuple.Create(Hex.F,(Hex)1);,和r.Item1.ToString()+r

c# - 降低字符串时解析枚举

我有一个非常有趣的问题,我不确定您是否可以使用这种方法来解决。我有一些字符串,都是小写的。我们就称它为商业法。现在,我有一个枚举类型,其值为BusinessLaw。我想做的是将businesslaw字符串转换为BusinessLaw枚举类型。通常我会这样做:return(EnumType)(Enum.Parse(typeof(EnumType),value));但是,当存在一些大小写差异时,这是不可能的。你会如何解决这个问题?还是天生无法解决? 最佳答案 您可以使用theoverloadofEnum.Parse最后一个参数表示区分大