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
*/