我想检查一些整数类型属于(一个)枚举成员.
例如,
public enum Enum1
{
member1 = 4,
member2 = 5,
member3 = 9,
member4 = 0
}
Run Code Online (Sandbox Code Playgroud)
Enum1 e1 =(Enum1)4给我member1
Enum1 e2 =(Enum1)10没有给我什么,我想检查一下.
Sam*_*eff 58
使用 Enum.IsDefined
Enum.IsDefined(typeof(Enum1), 4) == true
Run Code Online (Sandbox Code Playgroud)
但
Enum.IsDefined(typeof(Enum1), 1) == false
Run Code Online (Sandbox Code Playgroud)
正如Sam所说,您可以使用IsDefined。不过这有点尴尬。您可能想看一下我的不受限制的旋律库,它使您可以:
Enum1 e2 = (Enum1)10;
if (e2.IsNamedValue()) // Will return false
{
}
Run Code Online (Sandbox Code Playgroud)
一个枚举调用可能不值得,但是如果您用枚举做很多事情,您可能会在其中找到一些有用的东西。
它应该比Enum.IsDefined
btw 更快。它目前仅执行线性扫描,但请告知我是否需要改进:)(大多数枚举都足够小,以至于它们可能不会从中受益HashSet
,但我们可以进行二进制搜索...)
归档时间: |
|
查看次数: |
14397 次 |
最近记录: |