以下代码返回一,二,三,我希望GetNames这样做,GetValues返回2,5,10:
enum Nums
{
One = 2,
Two = 5,
Three = 10
}
class Program
{
static void Main()
{
var vals = Enum.GetValues(typeof(Nums));
}
}
这里有什么?如何从类型Nums
获取值2,5,10?
答案 0 :(得分:3)
将它转换为这样的int:
int value = (int)Num;
答案 1 :(得分:1)
您需要将其强制转换为int:
int val = (int)Nums.One;
或者回答你关于获取枚举中所有项目的问题:
IEnumerable<int> values = Enum.GetValues(typeof(Nums)).Cast<int>();
答案 2 :(得分:1)
你可以这样做:
int[] vals = Enum
.GetValues(typeof(Nums)) // Thus far, this is your code
.Cast<int>() // Cast individual elements to int
.ToArray(); // Convert the result to array
答案 3 :(得分:0)
我还没有完全包围C#Enums,但Enum.GetValues文档中有一个示例,显示了对它们有一些非常有趣和强大的效果。 http://msdn.microsoft.com/en-us/library/system.enum.getvalues(v=vs.110).aspx
using System;
enum SignMagnitude { Negative = -1, Zero = 0, Positive = 1 };
public class Example
{
public static void Main()
{
foreach (var value in Enum.GetValues(typeof(SignMagnitude))) {
Console.WriteLine("{0,3} 0x{0:X8} {1}",
(int) value, ((SignMagnitude) value));
} }
}
// The example displays the following output:
// 0 0x00000000 Zero
// 1 0x00000001 Positive
// -1 0xFFFFFFFF Negative