Tag: 枚举

为了UI目的排序枚举

假设我们有一个UI,在这个UI中我们有一个下拉列表。 此下拉列表中填充了枚举的翻译值。 鞠躬,我们可以按枚举的int值,枚举的名称和枚举的翻译名称进行排序。 但是如果我们想要一个与上面提到的3不同的排序怎么办 如何处理这样的要求?

Enum.Parse()或Switch

要将字符串转换为枚举,以下哪种方式更好? 这段代码: colorEnum color = (colorEnum)Enum.Parse(typeof(colorEnum), “Green”); 或这个: string colorString = … colorEnum color; switch (colorString) { case “Green”: color = colorEnum.Green; break; case “Red”: color = colorEnum.Red; break; case “Orange”: color = colorEnum.Orange; break; …. }

Enum上的DataTrigger作为WPF样式的触发器值

所以这就是我想要做的事情,我只是从代码开始,它很可能会有意义。 和枚举定义: namespace SEL.MfgTestDev.ESS.ViewModel { public enum UnitStatusModel { Indeterminate, Pass, Fail, Warning, } } 我错过了一件让这件作品? 我在enum上找到了一些依赖于对象数据源的WPF文章,我真的不喜欢这个解决方案,这里有什么更简单的东西吗?

枚举在类体外但在命名空间内的定义

今天,我遇到了一些像这样的代码。 namespace Foo { public enum Game{ High, Low}; public enum Switch{On, Off}; public class Bar() { // Blah } } 我无法弄清楚它与声明课堂内的枚举之间的区别是什么。 AFAIK,你仍然可以“覆盖”课堂内的那些枚举。

哪个.NET集合更快:枚举foreach Dictionary 。值或List ?

这些枚举中的一个是否比另一个或大约相同? (C#中的例子) 情况1: Dictionary valuesDict; // valuesDict loaded with thousands of objects foreach (object value in valuesDict.Values) { /* process */ } 案例2: List valuesList; // valuesList loaded with thousands of objects foreach (object value in valuesList) { /* process */ } 更新: 背景: 字典对于其他地方的键控搜索是有益的(而不是通过列表迭代),但是如果遍历字典比通过列表慢得多,那么好处将会减少。 更新:接受许多人的建议,我已经完成了自己的测试。 首先,这些是结果。 以下是该计划。 迭代整个收集词典:78 Keyd:131列表:76 键控搜索集合Dict:178 Keyd:194列表:142800 using System; using […]

枚举器实现:使用struct还是class?

我注意到List将其枚举器定义为struct ,而ArrayList将其枚举器定义为class 。 有什么不同? 如果我要为我的class级写一个调查员,哪一个更好? 编辑:我的要求无法使用yield来实现,所以我正在实现我自己的枚举器。 也就是说,我想知道遵循List并将其作为结构实现是否更好。

使用和枚举。 MVC3 ASP.Net中的自定义HtmlHelper

我使用另一个stackoverflow问题的代码片段: namespace MvcHtmlHelpers { public static class htmlHelpers { /// /// Radio button for : Adapted to support enum labels from display attributes /// /// /// /// /// /// public static MvcHtmlString RadioButtonForEnum( this HtmlHelper htmlHelper, Expression<Func> expression ) { var metaData = ModelMetadata.FromLambdaExpression(expression, htmlHelper.ViewData); var names = Enum.GetNames(metaData.ModelType); var sb = new StringBuilder(); foreach […]

是否有LINQ扩展或(一组合理/有效的LINQ扩展)确定集合是否至少具有’x’元素?

我有代码需要知道集合不应该为空或只包含一个项目。 一般来说,我想要一个表单的扩展: bool collectionHasAtLeast2Items = collection.AtLeast(2); 我可以轻松地编写扩展,枚举集合并递增索引器,直到我达到所请求的大小,或者耗尽元素,但是LINQ框架中是否已经存在这样做? 我的想法(按照我发现的顺序)是:: bool collectionHasAtLeast2Items = collection.Take(2).Count() == 2; 要么 bool collectionHasAtLeast2Items = collection.Take(2).ToList().Count == 2; 虽然采用了比集合包含更多元素的行为没有定义(在文档中) Enumerable.Take方法 ,但它似乎做了人们所期望的。 它不是最有效的解决方案,要么枚举一次取元素,再枚举再次计算它们,这是不必要的,或者枚举一次取元素,然后构造一个列表以获得不是枚举器的count属性-y,因为我实际上不想要列表。 它并不漂亮,因为我总是要做两个断言,首先取’x’,然后检查我实际收到’x’,这取决于无证件的行为。 或许我可以使用: bool collectionHasAtLeast2Items = collection.ElementAtOrDefault(2) != null; 但是,这在语义上并不明确。 也许最好的方法是使用方法名称来包装它,这意味着我想要的东西。 我假设这将是有效的,我没有反映在代码上。 其他一些想法正在使用Last() ,但我明确地不想枚举整个集合。 或者Skip(2).Any() ,再次在语义上并不完全明显,但优于ElementAtOrDefault(2) != null ,虽然我认为它们会产生相同的结果? 有什么想法吗?

如何确定Enum值是否具有与其进行比较的一个或多个值?

我有一个标有[Flags]属性的Enum,如下所示: [Flags] public enum Tag : int { None = 0, PrimaryNav = 1, HideChildPages = 2, HomePage = 4, FooterLink = 8 } 在我的站点地图中的站点地图节点上,我将标签组合的int值存储为属性。 我需要做的是检查一个节点是否有一个或多个标签中的任何一个 ,例如Tag.PrimaryNav | Tag.HomePage。 我正在努力使用必要的布尔逻辑来确定Enum值是否具有与其进行比较的一个或多个值。 如果不清楚,请道歉。 如有必要,我可以提供更多信息。

DataAnnotations命名空间中的Enum值是否有开箱即用的validation器?

C#枚举值不仅限于其定义中列出的值,还可以存储其基类型的任何值。 如果未定义基本类型而不是Int32或者仅使用int 。 我正在开发一个WCF服务,需要确信某些枚举有一个值,而不是所有枚举为0的默认值。我从一个unit testing开始,找出[Required]是否能在这里做正确的工作。 using System.ComponentModel.DataAnnotations; using Xunit; public enum MyEnum { // I always start from 1 in order to distinct first value from the default value First = 1, Second, } public class Entity { [Required] public MyEnum EnumValue { get; set; } } public class EntityValidationTests { [Fact] public void TestValidEnumValue() […]