根据 VB.net 中的参数初始化多维数组的维度

Hui Liu-MSFT 40,866 信誉分 Microsoft 供应商
2024-04-09T07:18:38.6133333+00:00

你好

在 VB.Net 申请中,我有以下内容:

  • 包含值的一维数组。
  • 包含行数的变量。
  • 包含每行索引的变量。
  • 表示值类型(uint、string ...)的变量。

从这些元素中,我需要构建一个与具有索引的行数相对应的多维数组,并将一维数组的值分发到新的多维数组中。

我的问题是根据变量中包含的行数、索引和值类型来定义我的多维数组变量。

将 MyArray (index1, Index2,...,....) 调暗为 Type (uint, string ...)

我们如何实现此功能? 我需要创建一个数组,而不是一个列表。

Note:此问题总结整理于:Initialize the dimensions of a multidimensional array according to parameters in VB.net

VB
VB
Microsoft 开发的一种面向对象的编程语言,其在 .NET Framework 上实现。 以前称为 Visual Basic .NET。
59 个问题
0 个注释 无注释
{count} 票

接受的答案
  1. Jiale Xue - MSFT 34,506 信誉分 Microsoft 供应商
    2024-04-09T07:46:23.5633333+00:00

    对于值类型,您可以使用 Buffer.BlockCopy() 方法复制数组,但对于引用类型,您需要手动分配多维数组。 二维数组的一个例子。

            Dim oneDimensionalArray() As ...  
            Dim index() As Integer = {2, 3}  
      
            Dim multiDimensionalArray As Array  
            Dim arrType As Type = oneDimensionalArray.GetType().GetElementType()  
            multiDimensionalArray = Array.CreateInstance(arrType, index)  
      
            Dim rowIndex, colIndex As Integer  
      
            For i As Integer = 0 To oneDimensionalArray.Length - 1  
                rowIndex = Math.Floor(i / index(1))  
                colIndex = i Mod index(1)  
                multiDimensionalArray(rowIndex, colIndex) = oneDimensionalArray(i)  
            Next  
    

    希望对您有所帮助。


    如果答案是正确的,请点击“接受答案”并点赞。 如果您对此答案还有其他疑问,请点击“评论”。

    注意:如果您想接收相关电子邮件,请按照我们的文档中的步骤启用电子邮件通知 此线程的通知。

    0 个注释 无注释

0 个其他答案

排序依据: 非常有帮助