var x = new double[,] { { 1, 2 }, { 3, 4 } };
var y = new double[,] { { 5, 6 }, { 7, 8 } };
var list = new List<double[,]> { x, y };
var maxValues = list
.Select(arg => arg.Cast<double>().Max())
.ToList();
Итак, насколько я понимаю, x и y являются уровнями.
Результатом будет 4 и 8, которые являются максимальными для уровней x и y соответственно.
[Редактировать]
Похоже, я неправильно понял вопрос.Чтобы найти уровень с max, вы можете использовать код, подобный этому:
var maxLevel = list
.Select(arg => new { Max = arg.Cast<double>().Max(), Level = arg })
.OrderByDescending(arg => arg.Max)
.Select(arg => arg.Level)
.First();