Существуют различные универсальные подходы к этому, но самый простой для случая, когда вы точно знаете, сколько у вас столбцов, это просто использовать вложенные циклы:
foreach (var a in firstColumn)
{
foreach (var b in secondColumn)
{
foreach (var c in thirdColumn)
{
foreach (var d in fourthColumn)
{
// Do something with a, b, c, d
}
}
}
}
Альтернатива с использованием LINQ:
var query = from a in firstColumn
from b in secondColumn
from c in thirdColumn
from d in fourthColumn
select new { a, b, c, d };
foreach (var tuple in query)
{
// Do something with tuple.a, tuple.b etc
}