【这两个枚举[Flags]声明(C#)之间有什么区别】教程文章相关的互联网学习教程文章

c# – EFCore枚举到where子句中未使用的字符串值转换【代码】

我有一个问题,我的Linq where子句如何被转换为Sql. 我正在使用EnumToStringConverter将我的实体的属性(枚举)映射到文本数据库列.只需从DbContext查询我的实体,这一切都正常. 然后我开始使用LinqKit和Expressions来获得可重用的过滤器.我创建了一个接受我的实体的Expression,并根据对实体其他属性的一些计算给出了我的枚举.我会尝试用代码解释自己,因为单词让我失望.我会写一个例子,所以我不必发布完整的代码,但逻辑将是相同的.您可...

C#:Sort / OrderBy枚举值【代码】

我有一个IEnumerable,我已经从Linq2Sql中实现了.我已经过滤掉了我想要的记录,现在我想根据选定的枚举来订购它们:public enum Sort {Time,Name,Value }public class LinqClass {public DateTime Time;public string Name;public double Value; }Sort sort = Sort.Time items.OrderBy(sort);做这个的最好方式是什么?我可以创建一个重载的OrderBy(Sort s),这只是一个很大的switch语句:switch(sort)case Time:return this.OrderBy(x...

c# – 如何在执行枚举时管理更改列表?【代码】

我有一个对象列表(音符),它们在播放时在单独的线程上枚举.我这样做是为了让我可以保持UI线程的响应. 当一个音符正在播放时(作为枚举的一部分)我如何允许新的音符可能被添加到列表中(没有明显的集合修改例外). 我知道我可以将列表复制到临时列表并枚举,但我实际上希望列表随着用户选择更多而增长(这将在第一个音符播放时发生等). psuedo逻辑是这样的:onClick() {Queue.Add(theClickedNote)Queue.Play() <-- on another thread }Pla...

c# – XmlSerializer – 如何在反序列化枚举时设置默认值?【代码】

我有一个看起来像这样的课程(大大简化):public class Foo {public enum Value{ValueOne,ValueTwo}[XmlAttribute]public Value Bar { get; set; } }我从外部源接收XML文件.他们的文档说明Foo元素在Bar属性中只有“ValueOne”或“ValueTwo”(它们不提供XSD). 所以,我这样反序列化:var serializer = new XmlSerializer(typeof(Foo));var xml = "<Foo Bar=\"ValueTwo\" />";var reader = new StringReader(xml);var foo = (Foo)seria...

c# – 如何在XAML中访问枚举值【代码】

我有一个自定义词典,键作为枚举,值为自定义对象.我需要在xaml中绑定此对象.那我怎么做呢? 我想做的是,<Button Content="{Binding ButtonGroups[my enum value].Text}"></Button>我试过的,<Button Content="{Binding ButtonGroups[local:MyEnum.Report].Text}"></Button><Button Content="{Binding ButtonGroups[x:Static local:MyEnum.Report].Text}"> </Button><Button Content="{Binding ButtonGroups[{x:Static local:MyEnum.R...

c# – 最佳实践:使用枚举或不存储下拉值

我正在开发一个应用程序,我经常问自己同样的问题. 例如,我有许多类型的用户,并且在用于创建用户的表单中,有一个下拉列表,用于指定哪种类型的用户. 填充此下拉列表的最佳方法是将值存储在数据库的表中?如果我这样做,当我开发时,我想测试用户类型,我只有一个int.但我认为使用枚举进行测试是一种更好的做法.所以我创建枚举,但我觉得这是一个不好的做法,因为我必须保持数据库和枚举同步. 另一个问题是关于本地化.如果我把值放在数据库...

c# – 在比较期间将1,000个字符串转换为小写字母比枚举比手动检查不同变体更便宜?【代码】

我有一个名为SelectedSections的属性,它是从一个Sections集合中分配的.每个部分都包含一个BidItems集合,其中包含1,000个项目.当我选择一个Section时,我需要刷新我的视图可以数据绑定的项目集合,并使用一组过滤的项目.public Section SelectedSection {get { return selectedSection; }set {this.SetPropertyByReference(ref this.selectedSection, value);if (value != null){this.BidItems = value.BidItems.Where(item => !item....

c# – 为什么Byte被提升为枚举?【代码】

虽然使用具有多个重载但需要不同数据类型但没有枚举的外部API,我决定创建一个方便的方法来为枚举提供更多的类型安全性,最终得到如下内容:namespace TestEnumPromotion {enum Values{Value0,Value1,}class Program{static void Main(string[] args){// Prints intOverloaded(0);// Prints ValuesOverloaded(Values.Value0);// Does not compile! :-/Overloaded((byte) 0);// Prints intbyte b = 0;Overloaded(b);}static void Over...

c# – 从枚举中加载radiobutton列表时,如何在每个单选按钮旁边显示文本?【代码】

我正在从枚举(垂直显示)加载radiobutton列表.我需要显示描述每个radiobutton选择的文本.我在代码隐藏中加载它.解决方法:Enum类的很多方面我最近发现越来越多的用途,其中之一就是GetNames方法.此方法返回指定枚举中所有名称的字符串数组. 此代码假定您的页面上有一个名为RadioButtonList1的RadioButtonList.public enum AutomotiveTypes {Car,Truck,Van,Train,Plane }public partial class _Default : System.Web.UI.Page {protecte...

c# – 为什么我不能通过单个隐式转换为枚举来打开一个类【代码】

我想知道为什么单个隐式转换为枚举值的方式与转换为系统类型时的方式不同.我看不出任何技术上的原因,但也许有人比我更聪明,能给我带来一些启示. 后续编译无法编译,“期望的整数类型的值”和“不能隐式地将类型’Test.En’转换为’Test.Foo’.void test1 (){Foo f = new Foo();switch (f) // Comment this line to compile//switch ((En)f) // Uncomment this line to compile{case En.One:break;} }////////////////////...

c# – 检查是否处理了所有枚举值【代码】

假设有一段代码:enum Directions {North,South,East,West }// (...)switch (dir) {case North : // Do sthcase South : // Do sthcase East : // Do sthcase West : // Do sth }特别注意缺少default:指令.现在假设,后来有人为该枚举增加了四个值:NorthEast,NorthWest,SouthEast,SouthWest.在这种情况下,引用的代码很可能会影响未定义的行为,因为没有安全措施来处理Directions枚举类型的可能扩展. 我对这个问题有一些疑问. >程序...

c# – 关于枚举的简单问题【代码】

internal enum eCoinType {g = 0,h = 1,s = 2 }我在相同的代码中看到过这一行:eCoinType coin = new eCoinType(); 这是什么意思?Enum的“新”声明有什么作用?谢谢解决方法:它创建一个默认值为0的eCoinType实例,它对应于eCoinType.g.默认构造函数是System.Enum class的构造函数. 请注意,虽然使用了关键字new,但您仍然可以创建值类型的项,因为枚举是值类型,而不是引用类型.它与使用new创建struct实例类似.

c# – 枚举值`可浏览(假)`【代码】

有没有办法使枚举值不能浏览组合框或者只是,不要从Enum.GetValues()回来?public enum DomainTypes { [Browsable(true)] Client = 1, [Browsable(false)] SecretClient = 2, } 解决方法:使用Enum.GetValues()方法没有任何地方可以为您完成此操作.如果要使用属性,可以创建自己的自定义属性并通过反射使用它:public class BrowsableAttribute : Attribute {public bool IsBrowsable { get; protected set; }public Browsa...

c# – 如何有效地验证表示标记枚举的整数?

考虑为按位运算设计的FileAttributes枚举.我创建了一个系统,用户可以在其中选择一些复选框来确定文件的状态.文件可以是ReadOnly和System.因此,该值将为5(对于ReadOnly为1,对于4个System为4). 如何验证整数是否为有效的FileAttributes枚举? 我已经看到了这些问题,但它们并没有帮助我,因为它们不适用于bitwised(标记,组合)值. Check that integer type belongs to enum memberIs there a way to check if int is legal enum in C#?解...

c# – 使用MVVM显示枚举等于字符串的值【代码】

我的目标是数据绑定与我的枚举相同的字符串.public enum Language{Unknown=0,CSharp=1,VB=2,VisualCpp=3,FSharp=4}public enum ProjectType{Unknown=0,ConsoleApplication=1,ClassLibrary=2}这是我的模型:class PLanguage{public Language EnumLanguage { get; set; }public string ImagePath { get; set; }public List<ProjectType> EnumTypes { get; set; }}MyViewModel:class PLanguageViewModel : ViewModelBase{public PLan...