将 int[] 数组转换为 ushort[] 数组
Convert int[] array to ushort[] array
我需要将 int[]
数组转换为 ushort[]
数组,以便使用这两种类型数组中的方法 Array.Copy()
。
我应该使用哪种方法?
var arr = Array.ConvertAll(inputs, val => checked((ushort)val));
这里Array.ConvertAll
的好处是从一开始就对目标数组进行了右对齐,所以不会分配多个数组,使用方便。
这里的checked
导致int
到ushort
的转换如果检测到溢出会抛出异常;这是默认情况下未完成的。
从 int 数组中获取 ushort 数组的简单方法是:
public static void Main(string[] args)
{
int[] intArr = new int[5]{1,2,3,4,5}; // Creates an array of ints
ushort[] ushortArr = new ushort[5]; // Creates an array of ushorts
// Copy the int array to the ushort array
for(int i=0; i<intArr.Length; i++){
ushortArr[i] = (ushort)intArr[i];
}
// Prints the ushort array
foreach(ushort u in ushortArr){
Console.Write(u+", ");
}
}
这个程序的输出是:
1, 2, 3, 4, 5,
注意:需要确保ushort数组的长度与int数组的长度一致
我相信这是一个非常简单的解决方案。
希望对您有所帮助:)
有更简洁的替代方案,但假设您需要在 int 不能是 unsigned short 时执行某些操作:
public ushort[] ToUnsignedShortArray(int[] intArray)
{
if (intArray == null)
{
return new ushort[0];
}
var shortArray = new ushort[intArray.Length];
for (var i = 0; i < intArray.Length; i++)
{
// add your logic for determining what to do if the value can't be an unsigned short
shortArray[i] = (ushort)intArray[i];
}
return shortArray;
}
我需要将 int[]
数组转换为 ushort[]
数组,以便使用这两种类型数组中的方法 Array.Copy()
。
我应该使用哪种方法?
var arr = Array.ConvertAll(inputs, val => checked((ushort)val));
这里Array.ConvertAll
的好处是从一开始就对目标数组进行了右对齐,所以不会分配多个数组,使用方便。
这里的checked
导致int
到ushort
的转换如果检测到溢出会抛出异常;这是默认情况下未完成的。
从 int 数组中获取 ushort 数组的简单方法是:
public static void Main(string[] args)
{
int[] intArr = new int[5]{1,2,3,4,5}; // Creates an array of ints
ushort[] ushortArr = new ushort[5]; // Creates an array of ushorts
// Copy the int array to the ushort array
for(int i=0; i<intArr.Length; i++){
ushortArr[i] = (ushort)intArr[i];
}
// Prints the ushort array
foreach(ushort u in ushortArr){
Console.Write(u+", ");
}
}
这个程序的输出是:
1, 2, 3, 4, 5,
注意:需要确保ushort数组的长度与int数组的长度一致
我相信这是一个非常简单的解决方案。 希望对您有所帮助:)
有更简洁的替代方案,但假设您需要在 int 不能是 unsigned short 时执行某些操作:
public ushort[] ToUnsignedShortArray(int[] intArray)
{
if (intArray == null)
{
return new ushort[0];
}
var shortArray = new ushort[intArray.Length];
for (var i = 0; i < intArray.Length; i++)
{
// add your logic for determining what to do if the value can't be an unsigned short
shortArray[i] = (ushort)intArray[i];
}
return shortArray;
}