Tag: 枚举

为什么Enum.GetValues()在使用“var”时返回名称?

有谁能解释一下? 替代文字http://www.deviantsart.com/upload/g4knqc.png using System; namespace TestEnum2342394834 { class Program { static void Main(string[] args) { //with “var” foreach (var value in Enum.GetValues(typeof(ReportStatus))) { Console.WriteLine(value); } //with “int” foreach (int value in Enum.GetValues(typeof(ReportStatus))) { Console.WriteLine(value); } } } public enum ReportStatus { Assigned = 1, Analyzed = 2, Written = 3, Reviewed = 4, Finished = […]

wcf将enum反序列化为字符串

我正在尝试使用WCF使用RESTful Web服务。 我无法控制Web服务的格式,所以我必须在这里和那里做一些解决方法。 然而,我似乎无法解决的一个主要问题是如何使WCF将枚举反序列化为字符串。 这是我的代码(显然名称已更改): [DataContract] public enum Foo { [EnumMember( Value = “bar” )] Bar, [EnumMember( Value = “baz” )] Baz } [DataContract] public class UNameIt { [DataMember( Name = “id” )] public long Id { get; private set; } [DataMember( Name = “name” )] public string Name { get; private set; } [DataMember( […]

将多个枚举组合到主枚举列表中

是否可以将多个枚举组合在一起? 以下是我希望看到的代码示例: enum PrimaryColors { Red, Yellow, Blue } enum SecondaryColors { Orange, Green, Purple } //Combine them into a new enum somehow to result in: enum AllColors { Red, Orange, Yellow, Green, Blue, Purple } 无论他们是什么顺序,或者他们的支持号码是什么,我只是希望能够将它们组合起来。 对于上下文,这是因为我正在处理的程序的多个类将具有与它们所做的相关联的枚举。 我的主程序将读取每个支持类中可用的所有枚举,并创建可用命令的可用枚举的主列表(枚举用于)。 编辑:这些枚举的原因是因为我的主程序正在读取要在特定时间执行的命令列表,所以我想读取文件,看看其中的命令是否与我的一个枚举相关联,以及如果是,请将其放入要执行的命令列表中。

来自string,int等的枚举

使用扩展方法,我们可以通过为枚举创建扩展方法ToInt() , ToString()等来创建将枚举转换为其他数据类型(如string,int)的方法。 我想知道如何实现其他方式,例如FromInt(int) , FromString(string)等。据我所知,我无法创建MyEnum.FromInt() (静态)扩展方法。 那么可能的方法是什么?

使用具有相同底层类型值的条目的枚举

如果我宣布一个枚举像 enum Weekdays { Mon = 1, Tue = 1, Wen = 1, Thi, Fri, Sat, Sun } Weekdays obj = (Weekdays)1; Console.WriteLine(obj);//Prints Tue why? 现在如果我改变工作日并做同样的操作如下 enum Weekdays { Mon = 1, Tue = 1, Wen = 1, Thi = 1, Fri, Sat, Sun } Weekdays obj = (Weekdays)1; Console.WriteLine(obj);//Prints Thi !!!!!How? 这里真的发生了什么?

使用枚举键绑定到字典的WPF数据

我有几个项目的解决方案。 在一个项目中,我的模型是一个名为ModelEnum的枚举。 然后在我的WPF项目中,我有一个具有Dictionary的ViewModel。 在我的ViewModel中,我将ValuesDictionary设置为: private Dictionary _valuesDictionary = new Dictionary(); public Dictionary ValuesDictionary { get { return _valuesDictionary; } set { _valuesDictionary = value; OnPropertyChanged(_valuesDictionary); } } 在我的XAML中我有: xmlns:model=”clr-namespace:Model.Data;assembly=Model” … 以下XAML代码段: (model:ModelEnum)ModelEnum.Enum1 给我错误“参数类型不匹配”。 我很困惑,因为我以为我把它投射到它所期望的Enum类型。 我引用了这个问题来试试它没有运气。

解析枚举的困惑

我正在将字符串类型的数值转换为相应的枚举。 当我测试我的代码时,我发现有趣的行为令我感到困惑。 使用下面的代码示例,如果/当“s”变量的值与Enum值之一不匹配时,有人可以阐明为什么不抛出exception? 另外,如何将sEnum var设置为Stooge枚举定义中不存在的值? class Program { enum Stooge { Unspecified, Moe, Larry, Curly, Shemp } static void Main(string[] args) { while (true) { Console.WriteLine(“Enter a number…”); string s = Console.ReadLine(); Stooge sEnum = (Stooge)(int.Parse(s)); //Why doesn’t this line throw if s != 0, 1, 2, 3, or 4? Console.WriteLine(“\r\nYou entered: {0}\r\nEnum String Value: […]

使用String从资源文件读取值

我有一个包含一些数据的枚举,我也有一个资源文件,其中包含相同的枚举数据但使用不同的翻译 防爆。 enum test { Sun =1, Mon = 2 } The resource file : Text.resx Sun –> Sunday Mon –> Monday 现在我想从资源文件中获取值但不使用 string data = Resources.Text.Sun; 但是使用我的枚举值,我找到了一些代码,但我有一个例外,代码如下: string resourceFile = “~/App_GlobalResources/Text.resx”; string filePath = System.AppDomain.CurrentDomain.BaseDirectory.ToString(); ResourceManager resourceManager = ResourceManager.CreateFileBasedResourceManager(resourceFile, filePath, null); string resourceValue = resourceManager.GetString(myEnum.ToString()); 我得到以下例外 找不到适合磁盘上指定文化(或中性文化)的任何资源。 baseName:〜/ App_GlobalResources / Text.resx locationInfo:fileName:〜/ App_GlobalResources / […]

等待异步谓词列表,但是先丢弃

想象一下以下课程: public class Checker { public async Task Check() { … } } 现在,想象一下这个类的实例列表: IEnumerable checkers = … 现在我想控制每个实例都将返回true : checkers.All(c => c.Check()); 现在,这将无法编译,因为Check()返回一个Task而不是bool 。 所以我的问题是:我怎样才能最好地列举检查器列表? 如果检查器返回false我怎样才能快速枚举枚举? (我认为All( )已经存在的东西)

应用于通用枚举集合的Cast .Cast 会导致无效的强制转换exception

enum Gender { Male, Female } var k = new[] { Gender.Male }.Cast().ToList().Cast().ToList(); //alright var p = new[] { Gender.Male }.Cast().Cast().ToList(); //InvalidCastException 第二种情况的原因是什么? 我知道我不能把一个盒装的enum为int? 直接,但我做了两个阶段的转换,即Cast.Cast应该正常工作。 编辑: 考虑到以下工作,这是令人惊讶的: object o = Gender.Male; int i = (int)o; // so here the cast is not to an entirely different type, which works