在.NET C#中,Double和Int是常见的数值类型,常常作为数组的元素使用。有时候我们需要将Double类型的数组转换为Int类型的数组,这时候该怎么做呢?
首先,我们可以使用for循环遍历Double数组,并使用强制类型转换将每个Double类型的元素转换为Int类型。代码如下:
double[] dblArray = { 1.2, 2.5, 3.8, 4.5, 5.3 };
int[] intArray = new int[dblArray.Length];
for (int i = 0; i < dblArray.Length; i++)
{
intArray[i] = (int)dblArray[i];
}
上述代码将Double类型的数组dblArray转换为了Int类型的数组intArray,并将每个元素的小数部分舍去,只保留整数部分。
另外,我们还可以使用LINQ中的Select方法来进行类型转换。代码如下:
double[] dblArray = { 1.2, 2.5, 3.8, 4.5, 5.3 };
int[] intArray = Array.ConvertAll(dblArray, x => (int)x);
上述代码使用了Array.ConvertAll方法,将Double类型的数组转换为Int类型的数组。其中,x => (int)x表示将每个元素转换为Int类型。
需要注意的是,在进行类型转换时,可能会出现精度或溢出问题。一般来说,Double类型的范围更大、精度更高,而Int类型的范围较小、精度较低。因此,在进行转换时需要格外小心。
下面提供一个示例:
public static int[] Switch(double[] arr)
{
return Array.ConvertAll(arr, new Converter<double, int>(getInt));
}
public static int getInt(double vlue)
{
return (int)vlue;
}
效果如下: