问题标签 [enum-flags]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - GroupBy 使用 [Flag] 枚举按单个枚举分组
假设我有
我希望能够在不考虑它是标志枚举的情况下使用GroupBy
按List<MyClass>
枚举分组。
当我使用GroupBy
(问题末尾的示例)时,分组是使用这样的聚合枚举进行的
我正在寻找以下内容(使用 GroupBy 方法,因为它比使用Where
3 次更高效)
我认为使用它会起作用:
c# - 限制可能的标志组合
有没有办法在枚举中组合标志但限制可能的组合?我有一个这样的枚举:
现在我还想引入一个FieldsOnly
-value 但确保它仅在PropertiesOnly
不存在时使用。这可能吗?
enums - 如何使用 enum t 获取多个值?
我不知道这样做的正确方法是什么。但这就是我想要的。我有一个枚举
EValue{A=1,B=2,C=4,D=8,E=16,}
我需要将数据库中的 int 值表示为 number ,
说如果选择 A,c,E
需要在数据库中说1 = 4 = 16 = 21。
没关系,但是从 21 开始我如何检索 a、c、e
提前感谢您的帮助
c# - 将值设置为列表 c# 中的 [Flags] 枚举
我需要通过从列表中获取的项目设置枚举值。
我有枚举:
列出值:
如何使用 foreach 获得以下结果?
谢谢
c# - 你如何测试枚举标志组合?
假设我有一个枚举标志:
我有以下函数,该参数是标志的组合,例如 DoSomething( ColorType.Blue | ColorType.Yellow )。
有没有一种简单的方法来测试所有可能的标志位组合?
谢谢
c - 如何在 C 中定义枚举标志,而不显式设置每个成员的值?
在 C 中,它的常见做法是......
但是,对于标志,您需要明确定义它们......
是否可以在不必显式列出每个值的情况下定义标志?
自从发布这个问题以来,似乎对你为什么要这样做感到有些困惑。需要明确的是,明确定义标志通常是一件“好事”,所以我的问题是关于一些相当模糊的极端情况,当你可能想避免它时。
注意:这假设标志只是“插槽”,它们从未写入磁盘或以持久方式使用,这会破坏 API 和网络协议。等等
这样做的能力可以排除一小类错误,其中......
- 枚举标志值必须使用连续位。
- 枚举标志位不得重叠。
添加/删除位的好处是不需要更改该enum
标识符之后的每个值。
诚然,这不是您一直想要使用的功能。但是在某些极端情况下它很有用。
现有解决方案(不满意)
注意到现有的(糟糕的)解决方案,这些解决方案在某种程度上有效但不满意(这就是我问这个问题的原因)
使用 2 个枚举
它有效,但与直接定义标志相比没有显着优势。
使用 GCC 的__COUNTER__
主要缺点是它只适用于 GCC,并且依赖于定义一些唯一的起始值来使用枚举......这会污染名称空间。
c# - 如何将 int 值转换为列出 Flag 枚举的 int 值
我有这个标志枚举:
我想从 int 值获取 int 值(或复杂枚举项的 int 值列表):
你对这个问题的解决方案是什么?
c# - 用两个相等的值序列化标志枚举
我想定义一个标志枚举,如下所示:
假设我创建了一个具有Numbers
属性的对象并将该属性设置为EvenNumbers
. 今天,仅Two
包含在属性中,但我想指定EvenNumbers
以便Four
将来添加时它也将包含在属性中。
但是,如果我使用 序列化这个对象XmlSerializer.Serialize
,XML 会说Two
因为今天这是相同的基础值。
如何强制序列化程序将此属性序列化为EvenNumbers
?
c# - 结合枚举的多个标志?
我一直在尝试为 SpeechLibs Talk() 函数使用多个标志。这就是我想要做的:
但是,它给了我以下错误:
错误 1 运算符“+”不能应用于“SpeechLib.SpeechVoiceSpeakFlags”和“SpeechLib.SpeechVoiceSpeakFlags”类型的操作数 c:\users\max\documents\visual studio 2013\projects\switch\switch\default_tts_screen.cs 62 51 Switch
该文档虽然明确指出这应该是可能的:
请注意,我使用的是 C#,但这不应该改变任何东西。对吧?..请帮我解决这个问题,因为它已经从几个小时以来就已经把我的头砸到了我的桌子上。我还没有在网上找到解决这个问题的方法。
model-view-controller - MVC 枚举标志:为什么第一个枚举值始终为真?
所以,我有一个标记的枚举:
问题是,无论我设置什么,“无”总是正确的......无论如何。说我这样设置:
然后尝试查看它:
在这里,Model.SiteVisibilityFlags.HasFlag(svf) 对于“无”总是正确的,而且不应该如此。在数据库中验证,值为'1'......但仍然检查无。我已经尝试了企业、属性和信息亭的单个和组合的每一种排列,复选框按预期工作,根据标志值检查和取消选中,但“无”总是选中/为真。
我错过了什么?