Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Buy a domain name - Register cheap domain names from $0.99 - Namecheap

Scalable Hosting That Grows With You

Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Semrush - keyword research tool

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

39,895 questions

51,826 answers

573 users

How to add row and column to 2D array of ints in C#

1 Answer

0 votes
using System;

namespace ConsoleApplication_C_Sharp
{
    class Program
    {
        static void Main(string[] args)
        {
            int[,] arr2d = { { 11, 22 }, { 33, 44 } }; // row = 2 : col = 2

            arr2d = AddRow(arr2d, new int[] { -100, -200 });
            PrintArray(arr2d);

            Console.WriteLine();

            arr2d = AddColumn(arr2d,  new int[] { 777, 888, 999 });
            PrintArray(arr2d);
        }

        static int[,] AddRow(int[,] arr2d, int[] newrow)
        {
            int lastRow = arr2d.GetUpperBound(0); // start from 0
            int lastColumn = arr2d.GetUpperBound(1); // start from 0

            // new row = 3 (1 + 2) : new col = 2 (1 + 1)
            int[,] newarr2d = new int[lastRow + 2, lastColumn + 1];

            // add arr2d data
            for (int i = 0; i <= lastRow; i++)
            {
                for (int j = 0; j <= lastColumn; j++)
                {
                    newarr2d[i, j] = arr2d[i, j];
                }
            }

            // add new row
            for (int i = 0; i < newrow.Length; i++)
            {
                newarr2d[lastRow + 1, i] = newrow[i];
            }

            return newarr2d;
        }

        static int[,] AddColumn(int[,] arr2d, int[] newcol)
        {
            int lastRow = arr2d.GetUpperBound(0);  // start from 0
            int lastColumn = arr2d.GetUpperBound(1); // start from 0

            // new row = 2 (1 + 2) : new col = 3 (1 + 2)
            int[,] newarr2d = new int[lastRow + 1, lastColumn + 2];

            // add arr2d data
            for (int i = 0; i <= lastRow; i++)
            {
                for (int j = 0; j <= lastColumn; j++)
                {
                    newarr2d[i, j] = arr2d[i, j];
                }
            }

            // add new column
            for (int i = 0; i < newcol.Length; i++)
            {
                newarr2d[i, lastColumn + 1] = newcol[i];
            }

            return newarr2d;
        }

        static void PrintArray(int[,] array)
        {
            int ub0 = array.GetUpperBound(0);
            int ub1 = array.GetUpperBound(1);

            for (int i = 0; i <= ub0; i++)
            {
                for (int j = 0; j <= ub1; j++)
                {
                    Console.Write(array[i, j] + " ");
                }
                Console.WriteLine();
            }
        }
    }
}

/*
run:
  
11 22
33 44
-100 -200

11 22 777
33 44 888
-100 -200 999
  
*/

 



answered Jan 7, 2017 by avibootz

Related questions

1 answer 138 views
138 views asked Jan 7, 2017 by avibootz
1 answer 85 views
85 views asked Mar 14, 2023 by avibootz
1 answer 74 views
74 views asked Mar 14, 2023 by avibootz
4 answers 305 views
...