How can I delete rows and columns from 2D array in C#?

WT86 picture WT86 · Oct 10, 2014 · Viewed 15.6k times · Source

How to delete a specific row and column from 2D array in C#?

int[,] array= {{1,2,3},{4,5,6},{7,8,9}};

lets say I want to delete row i and column i (skipping them) ... for nXn array not just 3x3 and store the remaining array in a new array... so the output would be:

{5,6},{8,9}

Answer

brz picture brz · Oct 10, 2014

There's no built-in way to do that, you can do it yourself:

 static void Main()
        {
            int[,] array = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };
            var trim = TrimArray(0, 2, array);
        }


        public static int[,] TrimArray(int rowToRemove, int columnToRemove, int[,] originalArray)
        {
            int[,] result = new int[originalArray.GetLength(0) - 1, originalArray.GetLength(1) - 1];

            for (int i = 0, j = 0; i < originalArray.GetLength(0); i++)
            {
                if (i == rowToRemove)
                    continue;

                for (int k = 0, u = 0; k < originalArray.GetLength(1); k++)
                {
                    if (k == columnToRemove)
                        continue;

                    result[j, u] = originalArray[i, k];
                    u++;
                }
                j++;
            }

            return result;
        }