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

本文关键字:2D 列表 转换 数组 中将 | 更新日期: 2023-09-27 18:20:00

我有以下C#列表:

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阵列中?

它不是一个"锯齿状数组",这意味着每个条目中总是有2个元素。

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

结果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;
}