【c# – 在C中调用另一个类中的枚举】教程文章相关的互联网学习教程文章

c# – 当请求更多功能时,是否应该将枚举重构为类?【代码】

此时我有以下代码.internal enum Genders {Male,Female,NotSure,Other }我正在考虑添加一个额外的功能,以便我可以预先处理所有值并根据它返回一个字符串.所以,我会按如下方式进行映射.Male -> "boy" Female -> "girl" NotSure -> "oh-boy" Other -> "cow"我应该将枚举重构为类还是建议将ToString值分配给不同的枚举状态?我用Google搜索了它,但没有看到任何代码示例,所以我不确定这样做是否明智. 也许最好创建一个辅助类并使...

c# – 从可枚举中过滤重复的项目【代码】

我有一个可能包含重复项的无序枚举,我想删除所有具有重复项的项,并且只保留在原始枚举中只出现一次的项. 示例:A和C被删除,因为它们不止一次出现: 输入{A,C,B,A,C,D,A}输出{B,D} 快速而肮脏的实现可能是:IEnumerable<T> Filter(IEnumerable<T> items) {items.Where(item => items.Count(x => x.Equals(item)) == 1); }显然不是快速或优雅. 下面的示例仍然是二次的(稍快),但需要在输入上调用ToList().IEnumerable<T> Filter(IEnum...

c# – 如何将枚举类型映射到tinyint【代码】

我是在想.是否有可能在流畅的api或Enum类型被映射为tinyint的任何东西? 比如说,public enum PaperType {Rough=1,Smooth=2, }public class TestPaper {public PaperType PaperType { get; set; } }如果正确运行迁移,它将映射到一个不是我不想要的int.我想指定tinyint,这样它就不会占用太多空间. int 4bytes而tinyint 1byte有什么想法吗?谢谢!解决方法:你可以做:public enum PaperType : byte {Rough=1,Smooth=2, }但不要那样做,...

c# – 告诉Nancy将枚举序列化为字符串【代码】

Nancy默认情况下在生成JSON响应时将枚举序列化为整数.我需要将枚举序列化为字符串. 有一种方法可以通过创建JavaScriptPrimitiveConverter来自定义Nancy的JSON序列化.例如,这是我为ONE枚举自定义序列化所做的: 创建自定义类:public class JsonConvertEnum : JavaScriptPrimitiveConverter {public override IEnumerable<Type> SupportedTypes{get{yield return typeof(MyFirstEnum);}}public override object Deserialize(object ...

c# – Linq组数据在扁平的可枚举中【代码】

Period|1| AA|0|0|32.39|0|0|-0.12| BB|0|-1794.62| CC|Entity1|25|31.48|244.1| DD|Entity2|25|0|0| Period|2| AA|0|0|32.39|0|0|-0.12| BB|0|-1794.62| CC|Entity1|25|31.48|244.1| EE|Entity2|25|0|0| FF|Entity3|25|0|0| GG|Entity4|25|0|0| HH|Entity5|25|0|0| Period|3| AA|0|0|32.39|0|0|-0.12| BB|0|-1794.62|将上述集合视为:IEnumerable<IEnumerable<string>> data;First Enumerable是每一行.Second Enumerable是由分隔符...

c# – 在XAML中使用枚举值【代码】

我在C#中定义了一个枚举public enum PointerStyle {Pointer,Block,Slider } ;我将它用作WPF自定义控件的依赖项属性public static DependencyProperty DisplayStyleProperty =DependencyProperty.Register("DisplayStyle", typeof(PointerStyle), typeof(Pointer), new PropertyMetadata(PointerStyle.Pointer));public PointerStyle DisplayStyle {get { return (PointerStyle)GetValue(DisplayStyleProperty); }set { SetValue(Di...

c# – 在哪里放置业务实体,枚举,自定义例外?

我正在试图弄清楚如何在数据,业务和UI层之间共享我的实体.是否最好为所有层引用的这些实体创建单独的项目? Enums和自定义异常怎么样?我有一些仅由UI项目使用的枚举,以及一??些由业务使用的枚举.这是否意味着我应该有两个单独的Enum文件夹:一个在Business项目中,另一个在UI中?与Exceptions类似?到目前为止,我一直在一个单独的项目中维护实体,枚举和例外,这些项目由所有3个层引用. My Business项目具有Manager类(如ProductManag...

c# – 使相应的本机和托管枚举保持同步的技术【代码】

我有一个本机库的管理器包装器 – 本机库是带有导出C接口的C,我在托管端使用P / Invoke来实现互操作.我控制托管代码和本机代码. 本机代码中有一个枚举,在托管代码中有相应的枚举,如下所示:// C# public enum ErrorCode {None = 0,General = 1,BadThings = 2,HardDriveWasRemoved = 3, }// C++ enum ERROR_CODE {ERROR_CODE_NONE = 0,ERROR_CODE_GENERAL = 1,ERROR_CODE_BAD_THINGS = 2,ERROR_CODE_HARD_DRIVE_REMOVED = 3, }这些枚...

c# – 枚举Simple.Data.SimpleRecord中的动态成员(和值)【代码】

我试图用Simple.Data.SimpleRecord做一些映射,并试图遍历成员:foreach (string memberName in Model.GetDynamicMemberNames()) {Console.Write Model.GetValueByMemberName(memberName); // or something }GetDynamicMemberNames()工作正常 – 但我没有找到GetValueByMemberName(),Member [].值或类似.它是一个DynamicObject,所以也许有一些我缺少的内置方法. PS我在这里错过了一个SimpleData标签.它会很大:-) https://github.com...

C#使用ForEach进行枚举时修改IEnumerable【代码】

这是我正在探索的东西,看看我是否可以采取的是什么List<MdiChild> openMdiChildren = new List<MdiChild>(); foreach(child in MdiManager.Pages) {openMdiChildren.Add(child); }foreach(child in openMdiChild) {child.Close(); }并缩短它不需要2个foreach循环. 注意我已经更改了调用对象的内容以简化此示例(这些来自第三方控件).但是为了获得信息和理解MdiManager.Pages继承表单CollectionBase,后者继承IEnumerable 和MdiChild....

c# – 如何将字符串转换为给定的枚举【代码】

如何投射字符串枚举? 我有下面的代码,当我尝试将字符串分配给levelEnum时,它给我错误,其中levelEnum是枚举…foreach (CustomProperty prop in requirementTemplate.AttributesCustomList) {if (prop.Name == property){return (CRF_DB.CRF_Requirement.LevelEnum) (prop.Value.ToString());} }有没有办法通过赋值选择枚举项目? 希望它足够清楚解决方法:请尝试以下方法return (CRF_DB.CRF_Requirement.LevelEnum)Enum.Parse(typeo...

c# – 枚举器作为参数【代码】

好的,让我们从这个非常简单的按钮点击方法开始吧private void button1_Click(object sender, EventArgs e){int counter = 1;List<int> items = new int[] { 1, 2, 3 }.ToList();List<int>.Enumerator enm = items.GetEnumerator();// 1if (!enm.MoveNext())throw new Exception("Unexpected end of list");if (enm.Current != counter)throw new Exception(String.Format("Expect {0} but actual {1}", counter, enm.Current));cou...

c# – 将代码优先枚举放入查找表中【代码】

我曾在很多商店工作,他们运行数据库优先模型,因此总是需要查找表.您的查找表必须与您的枚举匹配,以便保持数据库的完整性.我100%同意这个想法,但已经发现,当涉及到Code First Model时,这不是开箱即用的.我确实在某处读过EF团队可能会添加在EF7中动态地将Enums添加到您的数据库(通过迁移)的功能,但他们警告说这不是一个承诺. 那么你(如果有的话)如何实现这一目标呢?我将在下面的答案中提供我的解决方案,并期待您的反馈. 我使用的是...

c# – 将字符串严格解析为枚举的最佳方法是什么?【代码】

假设我有一个枚举:public enum MyEnum {OptionOne = 0,OptionTwo = 2,OptionThree = 4 }就像在How should I convert a string to an enum in C#?问题中所说的那样,我使用Enum.Parse方法从字符串解析枚举:public class Enumer {public static MyEnum? ParseEnum(string input){try{return (MyEnum) Enum.Parse(typeof (MyEnum), input);}catch (ArgumentException){return null;}}}不幸的是,它没有按预期使用整数,表示为字符串.我...

c -replacement中的枚举类 – 在c#中【代码】

看看这些c代码:enum class Flag : int32 {f_unread = (1 << 0),f_out = (1 << 1),f_mentioned = (1 << 4),MAX_FIELD = (1 << 4), };c#中这些代码的隐蔽是什么?解决方法:Using Tangible.似乎它并没有太大的不同.[Flags] public enum Flag : int {f_unread = (1 << 0),f_out = (1 << 1),f_mentioned = (1 << 4),MAX_FIELD = (1 << 4), }在c#中,要将enum用作标志操作的位字段,应该使用FlagsAttribute添加,它在枚举之前添加[FlagsAtt...