可能重复:
C#int到枚举转换
是否有可能将int转换为标志组合枚举?因此,如果
[Flags]
public enum Foo {a = 0x80,
b = 0x40,
c = ...,
...
h = 0x1,
i = 0};
Run Code Online (Sandbox Code Playgroud)
是否可以(或某种可能)做
Foo fooInstance = (Foo)6;
Run Code Online (Sandbox Code Playgroud)
那fooInstance将是00000110?
谢谢!
我正在使用LINQ 2 SQL从表中提取一些数据...其中一个数据是表示我的应用程序代码中的enumation的值.
在LINQ对象中返回的数据与应用程序代码中的枚举之间进行比较的最简单方法是什么.所以举个例子
enum SomeEnum
{
First
Second
}
Run Code Online (Sandbox Code Playgroud)
然后在我的方法
Table<LinqObject> objects = dc.GetTable<LinqObject>();
foreach (var item in objects)
{
// What's the simplest way to do this comparison???
if (item.SomeNullableInteger == SomeEnum.First) // Note I realise this doesn't work!!!
{
// Do something...
}
}
Run Code Online (Sandbox Code Playgroud)
我能做到这一点
SomeEnum.First.Equals(item.SomeNullableInteger)
Run Code Online (Sandbox Code Playgroud)
或者我可以将枚举名称存储在数据库中,然后我就可以这样做了
Enum.GetName(SomeEnum, SomeEnum.First) == item.SomeNullableName
Run Code Online (Sandbox Code Playgroud)
有没有更好的办法?枚举只有两个项目,它们非常固定......可能有三分之一或四分之一但可能永远不会超过这个.所以整张桌子似乎有点矫枉过正.