Question: I have an XML tag that I need to manipulate on Linux:

```
<m1:PayloadId>TESTCASE01_0000123456</m1:PayloadId>

```

I need to change the text from `TESTCASE01_0000123456` to `TESTCASE01_1234567890` between the tags.

I used this sed command in my code:

```
sed -i 's/PayloadId>.*</m1:PayloadId>'0000123456'</g' t1.xml

```

but it replaces the entire text. I need to retain `TESTCASE01_`.

Answer: 
It is always possible to iterate over any 2-dimensional arrays using nested for loops. Think of this as a table with rows and columns, where the first for loop selects the row and the second for loop selects the column. 

When you've selected the column, simply perform the function you wish, in this case `Console.WriteLine(column[j])`, where `column[j]` is the column you want to print to the console or wherever you might want to output the result.

```
string[,] conversionTable = {
        { "Miles to kilometers", "Miles", "Kilometers", "1.6093" },
        { "Kilometers to miles", "Kilometers", "Miles", "0.6214" },
        { "Feet to meters", "Feet", "Meters", "0.3048" },
        { "Meters to feet", "Meters", "Feet", "3.2808" },
        { "Inches to centimeters", "Inches", "Centimeters", "2.54" },
        { "Centimeters to inches", "Centimeters", "Inches", "0.3937" }
    };

for(int i = 0; i < conversionTable.Length; i++){
    for(int j = 0; j < conversionTable.Length; j++){
        Console.WriteLine(conversionTable[i][j]);
    }
}

```

You'd probably want to use a class with properties and rather use a `List<ConversionTable>` but that's not the assignment I'm guessing.
Think of it like an array of arrays. That might help. If you do that, you see that `conversionTable` has six elements, which are themselves arrays. The first subscript will choose which "sub-array". The second subscript will then choose the element in that "sub-array".