C# 源数组中至少有一个元素无法向下转换为目标数组类型多维数组
我有这行代码,我打算将数组从C# 源数组中至少有一个元素无法向下转换为目标数组类型多维数组,c#,arrays,multidimensional-array,office-interop,C#,Arrays,Multidimensional Array,Office Interop,我有这行代码,我打算将数组从ws.get_Range(“F2”,“AL”+(1+noOfStudents)).Value2复制到cValuesAll。它正在引发异常,源数组中至少有一个元素无法向下转换为目标数组类型。数组是多维的 类似的代码行 Array.Copy(ws.get_Range("F2", "AL" + (1 + noOfStudents)).Value2, cValuesAll, ws.get_Range("F2", "AL" + (1 + noOfStudents)).Value
ws.get_Range(“F2”,“AL”+(1+noOfStudents)).Value2复制到cValuesAll
。它正在引发异常,源数组中至少有一个元素无法向下转换为目标数组类型
。数组是多维的
类似的代码行
Array.Copy(ws.get_Range("F2", "AL" + (1 + noOfStudents)).Value2, cValuesAll, ws.get_Range("F2", "AL" + (1 + noOfStudents)).Value2.Length);
工作正常。此异常意味着源数组包含的值的类型与cValuesAll
元素的类型不同。所以你有两种方法来解决这个问题:
1。更改Excel中F2:AL*范围的单元格类型
2.复制中的值,对于
循环,如果可能,强制转换值或向用户报告无效的单元格值
Array.Copy(ws.get_Range("C2", "AI" + (1 + noOfTeachers)).Value2, aValuesWOSummary, ws.get_Range("C2", "AI" + (1 + noOfTeachers)).Value2.Length);
dynamic values=ws.Range[“F2”,“AL”+(1+noOfStudents)].Value2;
int firstDimension=values.GetLength(0);
int secondDimension=values.GetLength(1);
double[,]数组=新的双精度[firstDimension,secondDimension];
对于(int i=0;i
dynamic values = ws.Range["F2", "AL" + (1 + noOfStudents)].Value2;
int firstDimension = values.GetLength(0);
int secondDimension = values.GetLength(1);
double[,] array = new double[firstDimension, secondDimension];
for (int i = 0; i < firstDimension; i++)
{
for (int j = 0; j < secondDimension; j++)
{
object value = values[i + 1, j + 1];
if (value == null)
{ /* Report about a null value */ }
if (value is double)
{
array[i, j] = (double)value;
}
else
{
if (!double.TryParse(value.ToString(), out array[i, j]))
{ /* Report about a wrong type */ }
}
}
}