我有以下 C# 列表:
List<Response> listAllData = new List<Response>();
listAllData.Add(new Response() {
strId = propResponse.strId,
strName = propResponse.strName
});
然后我将其转换为数组:
object[] array2 = listAllData.ToArray();
但是当我尝试使用以下方法将数据写入范围时:
rngValues.Value = array2;
我收到错误
Exception from HRESULT: 0x800A03EC
我(合理地)确定这是 b/c 结果 array2
实际上不是一个 2D 多维数组,而是一个数组的数组。
所以我的问题是...如何将我的 listAllData
放入二维数组中?
它不是一个“锯齿状数组”,这意味着每个条目中始终有 2 个元素。
最佳答案
resulting array2 is not actually a 2D multidimensional array, but instead an array-of-arrays.
不,它是Response
对象的一维数组。如果您希望它位于对象的二维数组中(其中行是源对象的两个字符串属性),则必须构建一个循环(Linq 不支持二维数组):
object[,] array2 = new object[listAllData.Count,2];
for(int i = 0; i < listAllData.Count; i++)
{
array2[i,0] = listAllData[i].strId;
array2[i,1] = listAllData[i].strName;
}
关于c# - 如何在 C# 中将 2D 列表转换为 2D 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33443171/