将int []数组转换为ushort []数组

问题描述 投票:1回答:3

为了从这两种类型的数组中使用方法int[],我需要将ushort[]数组转换为Array.Copy()数组。

我应该使用哪种方法?

c# arrays int ushort
3个回答
2
投票
var arr = Array.ConvertAll(inputs, val => checked((ushort)val));

Array.ConvertAll的优点在于,它可以正确调整目标数组的大小[[从一开始,因此它永远不会分配多个数组,并且可以方便地使用。

checked在此导致如果检测到溢出,则intushort转换将引发异常;默认情况下,这是

not


1
投票
从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数组的长度相同。

我相信这是一个非常简单的解决方案。希望对您有所帮助:)


1
投票
还有更清洁的替代方法,但假设您在int不能为无符号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; }

© www.soinside.com 2019 - 2024. All rights reserved.