FOREACH

La instrucción foreach repite un grupo de instrucciones incluidas en el bucle para cada elemento de una matriz o de un objeto collection.

mostrar el contenido de una matriz de enteros

int[] fibarray = new int[] { 0, 1, 2, 3, 5, 8, 13 };
foreach (int i in fibarray)
{  System.Console.WriteLine(i);
}

pasar filas seleccionadas de un datagridview a un datatable

dtDestino = new DataTable();
for (int nContador = 0; nContador <= (dataGridView1.Columns.Count – 1); nContador++)
{
dtDestino.Columns.Add(dataGridView1.Columns[nContador].HeaderText);
}
DataGridViewSelectedRowCollection aFilasSelec = dataGridView1.SelectedRows;
foreach (DataGridViewRow oFila in aFilasSelec)
{
DataRow row = dtDestino.NewRow();
foreach (DataGridViewCell oCelda in oFila.Cells)
{
row[oCelda.ColumnIndex] = oCelda.Value;
}
dtDestino.Rows.Add(row);
}

por cada tabla en el dataset imprime los valores de cada fila

private void PrintRows(DataSet dataSet)
{    foreach(DataTable thisTable in dataSet.Tables)
    {   foreach(DataRow row in thisTable.Rows)
        {   foreach(DataColumn column in thisTable.Columns)
            {    Console.WriteLine(row[column]);
            }
        }
    }
}