Agregar elementos a las columnas / filas en la vista de lista usando foreach

Estoy en el día 5 de aprender c #, y estoy tratando de averiguar cómo llenar / rellenar un control ListView, que contiene 10 filas y 12 columnas, usando un ciclo foreach. He codificado la funcionalidad que busco en C.

void listPopulate(int *listValues[], int numberOfColumns, int numberOfRows)
{
    char table[100][50];
    for (int columnNumber = 0; columnNumber < numberOfColumns; ++columnNumber)
    {
        for (int rowNumber = 0; rowNumber < numberOfRows; ++rowNumber)
        {
            sprintf(&table[columnNumber][rowNumber], "%d", listValues[columnNumber][rowNumber]);
            // ...
        }
    }
}

Esto es lo que he descubierto hasta ahora:

public void listView1_Populate()
{

    ListViewItem item1 = new ListViewItem("value1");
    item1.SubItems.Add("value1a");
    item1.SubItems.Add("value1b");

    ListViewItem item2 = new ListViewItem("value2");
    item2.SubItems.Add("value2a");
    item2.SubItems.Add("value2b");

    ListViewItem item3 = new ListViewItem("value3");
    item3.SubItems.Add("value3a");
    item3.SubItems.Add("value3b");
    ....

    listView1.Items.AddRange(new ListViewItem[] { item1, item2, item3 });
}

Supongo que tendría que hacer la creación de los elementos de la lista en un paso separado. Entonces mi pregunta es: debe haber una manera de hacer esto en C # con un ciclo for o foreach, ¿no?

Respuestas a la pregunta(2)

Su respuesta a la pregunta