相关疑难解决方法(0)

3015
推荐指数
32
解决办法
128万
查看次数

标记枚举的C#int

可能重复:
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?

谢谢!

c# enums bitflags

14
推荐指数
1
解决办法
2万
查看次数

将枚举与DB中的整数值返回进行比较的最简单方法是什么

我正在使用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)

有没有更好的办法?枚举只有两个项目,它们非常固定......可能有三分之一或四分之一但可能永远不会超过这个.所以整张桌子似乎有点矫枉过正.

实际上这是枚举转换C#int的副本

c# enums linq-to-sql

5
推荐指数
1
解决办法
2万
查看次数

标签 统计

c# ×3

enums ×3

bitflags ×1

casting ×1

linq-to-sql ×1