Tag: 枚举

比较两个enum *类型*的等价性?

在我的应用程序中,我有两个等效的enum 。 一个住在DAL,另一个住在服务合同层。 它们具有相同的名称(但位于不同的名称空间中),并且应具有相同的成员和值。 我想写一个强制执行此操作的unit testing。 到目前为止,我有以下内容: public static class EnumAssert { public static void AreEquivalent(Type x, Type y) { // Enum.GetNames and Enum.GetValues return arrays sorted by value. string[] xNames = Enum.GetNames(x); string[] yNames = Enum.GetNames(y); Assert.AreEqual(xNames.Length, yNames.Length); for (int i = 0; i < xNames.Length; i++) { Assert.AreEqual(xNames[i], yNames[i]); } // TODO: How […]

如何从枚举创建IEnumerable

可能重复: Enum上的IEnumerable扩展方法 如何使用Generics创建一种从枚举中创建IEnumerable的方法? 鉴于这样的枚举: public enum City { London = 1, Liverpool = 20, Leeds = 25 } public enum House { OneFloor = 1, TwoFloors = 2 } 如何将这些转换为具有两个名为“data”和“value”的字段的IEnumerable列表。 是否有可能采用通用方法或方法? 请注意,值并不总是连续的。

可以将按位数学用于SQL中的一对多关系吗?

RDBMS中的正确规范化意味着表的扩散。 整数字段可以将正交数据存储为位 – 这可以用作替代附加表,而不会牺牲关系完整性吗?

如何将枚举转换为类型

我有这样的枚举。 public enum eTypeVar { Int, Char, Float }; 我想将它转换为类型,做这样的事情: eTypeVar type=eTypeVar .Int; string str= eTypeVar.ToString .ToLower(); (str as type) a=1; 我该怎么办?

ASP.NET MVC中的访问控制使用基于的Enum进行SQL中的int权限管理

这个问题的灵感来自这个关于 ASP.NET MVC中访问控制的SO问题 。 在这里,我试图将接受的答案带入一个切实的解决方案。 答案提到使用FileSystemSecurity作为管理权限的灵感。 这里我还使用带有Flags属性的枚举来定义所有对象的ACL。 此外,我的对象的每个成员都将存储在SQL中的一列中。 假设简化的Linq2SQL,EF或nHibernate ORM映射。 编辑:为此方法添加了以下好处/原理 此安全模型的灵感来自FileSystemRights ,即管理文件级权限的.NET方法。 我喜欢这种方法的主要原因之一是,我可以通过将所有单独的ACL进行OR运算来轻松创建所有权限的摘要。 我也喜欢我可以添加DENY ACL来删除inheritance的权限。 List PermissionsList = GetACLForObject(ItemID, UserID); foreach (var acl in PermissionsList) { // The following enum has the [FlagsAttribute] applied so the .ToString() is pretty PermissionWithFlagsEnum sampleForSO = (PermissionWithFlagsEnum )acl.Permission; Console.Writeline (“Setting ” + sampleForSO.ToString() + ” permission for group: […]

枚举有多个描述

我有这样的枚举。 public enum Gender { Man = 1, Woman = 2 } 我使用ASP MVC4来显示这样的下拉选项。 @Html.DropDownListFor(model => model.Gender, new SelectList(Enum.GetValues(typeof(Namespace.Models.Enum.Gender)))) 这就像一个魅力,它显示了男人/女人的下拉。 我的问题是,我希望在不同的上下文中显示不同的名称。 如果你是一个妈妈或一个爸爸,就像一个背景。 我想使用性别enum作为基础,但显示男/女的妈妈/爸爸instad。 另一个背景是男孩/女孩,我仍然想使用性别枚举,但显示不同的文字。 这有可能吗? 编辑我使用凯文的解决方案,并添加了另一种这样的扩展方法。 public static List<KeyValuePair> GetValues(IGenderStrategy genderStrategy) { Dictionary arr = new Dictionary(); foreach (Gender g in System.Enum.GetValues(typeof(Gender))) arr.Add(g.ToValue(genderStrategy), (int)g); return arr.ToList(); } 在我看来,我用过这个。 @Html.DropDownListFor(model => model.Gender, new SelectList(Chores.Models.Enum.EnumExtentions.GetValues(new Chores.Models.Enum.ParentStrategy()), “value”, […]

使用Enum Flag Bit的基于WPF权限的授权

我已经做了一个月的C#所以请原谅这个问题的’本地性’,但我已经研究了几个小时,我已经打了一堵砖墙。 我已经看到了使用IIdentity和IPrincipal 进行基于角色的 WPF应用程序授权的左右示例。 我找不到很多信息,但是,在更多基于权限的授权方法中,在这个应用程序中,想象没有组,只有权限和用户列表,您可以为任何人分配任何权限。 我希望能够: 1)能够根据用户权限控制UI /元素,其状态包括:Enabled,ReadOnly,Invisible,Collapsed(如此处所示https://uiauth.codeplex.com/ ) 2)能够在类或方法级别指定需要哪些权限(类似于http://lostechies.com/derickbailey/2011/05/24/dont-do-role-based-authorization-checks-do-activity基础检查/ ) 代替: [PrincipalPermission(SecurityAction.Demand, Role = “Administrators”)] 我想要的东西: [PrincipalPermission(SecurityAction.Demand, Permission = “Can add users”)] 现在,我看到如何做到这一点的唯一方法是利用ICommand并使用大量的字符串比较在CanExecute方法中放置授权逻辑,以查看用户是否具有执行请求的操作所需的权限,如: // Employee class public bool HasRight(SecurityRight right) { return employee.Permissions.Contains(right); } // Implementation, check if employee has right to continue if (employee.HasRight(db.SecurityRights.Single(sr => sr.Description == “Can edit users”))) { // Allowed […]

是否可以将项目从Enum加载到.NET 3.5中的ComboBox?

是否可以将项目从Enum加载到.NET 3.5中的ComboBox?

c#中的抽象枚举

有没有办法在C#中制作( protected ) enum abstract ? 基类示例: protected abstract enum commands{}; //CS0106 protected abstract void useCommands(commands meh); 这不会编译,因为“ abstract对此项无效”。 是否有一种工作方式来实现所期望的行为?

枚举和使用带常量的静态类有什么区别?

这两个项目之间的性能影响是什么? 我最近看到了野外的静态类,我不知道该怎么做。 public enum SomeEnum { One = 1, Two, Three } public static class SomeClass { public static readonly int One = 1; public static readonly int Two = 2; public static readonly int Three = 3; }