如何在C#中将2D列表转换为2D数组

时间:2015-10-30 19:02:25

标签: c# arrays multidimensional-array

我有以下C#List:

List<Response> listAllData = new List<Response>();

listAllData.Add(new Response() {
    strId = propResponse.strId,
    strName = propResponse.strName
});

然后我将其转换为数组:

object[] array2 = listAllData.ToArray();

但是当我尝试使用以下方法将数据写入范围时

rngValues.Value = array2;

我收到错误

  

HRESULT的异常:0x800A03EC

我(合理地)确定这是b / c,结果array2实际上不是2D多维数组,而是数组数组。

所以我的问题是......如何将我的listAllData变成2D数组?

它不是一个&#34;锯齿状阵列&#34;意思是每个条目总共有2个元素。

1 个答案:

答案 0 :(得分:4)

  

结果array2实际上不是2D多维数组,而是数组数组。

不,它是 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;
}