📜  c# 将 enumb 转换为 int 数组 - C# (1)

📅  最后修改于: 2023-12-03 15:13:51.302000             🧑  作者: Mango

C# 将 Enum 转换为 int 数组

在 C# 中,枚举类型(Enum)是一种非常常见的数据类型。有时候需要将枚举类型转换为 int 数组,以便于进行一些操作,比如排序、比较等。本文将介绍使用 C# 将 Enum 转换为 int 数组的方法。

方法一:使用 Enum.GetValues 方法

C# 中,Enum 类型提供了 GetValues 方法,用于获取枚举类型中所有的枚举值数组。该方法返回的数组的类型是枚举类型的单独元素类型。因此可以使用 Array.ConvertAll 方法,将返回的枚举值数组类型转换为 int 数组类型。

// 定义枚举类型
enum WeekDays
{
    Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday
}
// 将枚举类型转换为 int 数组
int[] intValues = Array.ConvertAll<WeekDays, int>((WeekDays[])Enum.GetValues(typeof(WeekDays)), Convert.ToInt32);

// 输出转换后的 int 数组
foreach (int intValue in intValues)
{
    Console.WriteLine(intValue);
}

在上面的代码中,使用 Enum.GetValues(typeof(WeekDays)) 获取 WeekDays 枚举类型所有的枚举值数组。然后使用 Array.ConvertAll 方法将每个枚举值转换成 int 数组。

方法二:使用 Linq 表达式

C# 中可以使用 Linq 表达式的 Select 方法来将枚举值转换为 int 类型,然后使用 ToArray 方法将转换后的值存储到 int 数组中。

// 定义枚举类型
enum WeekDays
{
    Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday
}
// 将枚举类型转换为 int 数组
int[] intValues = Enum.GetValues(typeof(WeekDays)).Cast<int>().ToArray();

// 输出转换后的 int 数组
foreach (int intValue in intValues)
{
    Console.WriteLine(intValue);
}

在上面的代码中,使用 Enum.GetValues(typeof(WeekDays)) 获取 WeekDays 枚举类型所有的枚举值数组。然后使用 Cast<int> 方法将每个枚举值转换成 int 类型,再使用 ToArray 方法将转换后的值存储到 int 数组中。

总结

以上介绍了两种将枚举类型转换为 int 数组的方法。第一种方法使用了 Array.ConvertAll 方法,第二种方法使用了 Linq 表达式的 Select 和 ToArray 方法。读者可以根据自己的需求选择相应的方法。