代码之家  ›  专栏  ›  技术社区  ›  Ivan-Mark Debono

如何将项添加到锯齿数组?

c#
  •  0
  • Ivan-Mark Debono  · 技术社区  · 8 年前

    我有一个锯齿状的数组类型 long[][] .

    这可能很简单,但我似乎不知道如何将值添加到数组的末尾。

    我需要调整它的大小之前,我如何实际添加项目?

    2 回复  |  直到 8 年前
        1
  •  1
  •   Hossein Golshani    8 年前

    需要调整要向其中添加元素的数组的大小:

    var array = new long[][]
    {
        new long[]{1},
        new long[]{2,3}
    };
    
    // change existing element
    array[1][0]=0;
    
    // add row & fill it
    Array.Resize(ref array, 3);
    Array.Resize(ref array[2], 1);
    array[2][0]=5;
    
    // resize existing row
    
    Array.Resize(ref array[1], 3);
    array[1][2]=6;
    

    List<List<T> 或者 Dict<long, List<long>> 除非有特定的原因需要使用数组(但即使这样,也总是有) .ToArray() 使用锯齿状数组并调整其大小的一个用例是具有许多元素的数组的访问性能。

        2
  •  0
  •   Siavash    8 年前

    在C#中,锯齿数组也被称为“数组数组”,因为它的元素是数组。锯齿状数组的元素大小可以不同。

    int[][] arr = new int[2][];// Declare the array      
    int[] arr1 = new int[4];
    int[] arr2 = new int[6];    
    //user input for arr1
    for (int i = 0; i < arr1.Length;i++ )
    {
        arr1[i] = int.Parse(Console.ReadLine());
    }    
    // user input for arr2
    for (int i = 0; i < arr2.Length; i++)
    {
        arr2[i] = int.Parse(Console.ReadLine());
    }    
    arr[0] = arr1;
    arr[1] = arr2;            
    // Traverse array elements  
    for (int i = 0; i < arr.Length; i++)
    {
        for (int j = 0; j < arr[i].Length; j++)
        {
            System.Console.Write(arr[i][j] + " ");
        }
        System.Console.WriteLine();
    }
    
    • int[][]arr=new int[2][]对于declare jagged array,2表示它将容纳的数字数组arr'数组包含'arr1'&'arr2'
    • int[][]arr=新int[2][]{
      新int[]{11,21,56,78},

      };

    • 同样的事情也适用于“long”