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

标签 c# arrays multidimensional-array

我有以下 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/

相关文章:

c# - C#、C++ 和 C 的混合

c# - 这个 Xamarin 自定义渲染器教程中的 CameraOptions 类型是什么?

c# - 当符号为 @ 或 # 时检测 RichTextBox 中的超链接

java - 尝试在 java 中初始化多维数组时收到 NullPointerException 错误

c# - 如何比较两个二维数组

c# - 确定圆上的线段选择

ios - 如何快速创建不可变数组的可变副本?

c++ - 数组初始化 - 有条件地

来自 .txt 文件的 C++ 二维数组

C多维数组堆赋值