我想将我的有序int数组转换为长数组,这是我的转换目前的样子:
long[] arraylong = new long[array.Length];
Run Code Online (Sandbox Code Playgroud)
当我想应用这个计算时,我的问题出现了:
longmid = lowlong + ((searchValueLong - arraylong[lowlong]) * (highlong - lowlong))
/ (arraylong[highlong] - arraylong[lowlong]);
Run Code Online (Sandbox Code Playgroud)
我得到一个类型的例外DivideByZeroException.转换后为零的值为arraylong[lowlong]和arraylong[highlong]
提前感谢您提供的任何帮助.
要转换int[]使用linqs Select并在其中显式转换为long:
int[] ints = new int[] { 1, 2, 3, 4 };
var longs = ints.Select(item => (long)item).ToArray();
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,您只是将a初始化long[]为大小,int[]并且项目获得默认值 - long为零为零 - 导致您的DivideByZeroException
请注意,使用ints.Cast<long>().ToArray();将无法正常工作并抛出InvalidCastException: Specified cast is not valid.