📅  最后修改于: 2023-12-03 15:13:51.302000             🧑  作者: Mango
在 C# 中,枚举类型(Enum)是一种非常常见的数据类型。有时候需要将枚举类型转换为 int 数组,以便于进行一些操作,比如排序、比较等。本文将介绍使用 C# 将 Enum 转换为 int 数组的方法。
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 数组。
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 方法。读者可以根据自己的需求选择相应的方法。