如何在给定索引的二维数组中获得最小值?

时间:2011-01-09 21:05:39

标签: c# multidimensional-array

double[] tab = new double[10];

我知道我可以通过tab.Min()来最小化。

double[,] tab = new double[10,2]; 

这是坐标表,第二个索引0是x,1是y。有10分。

如何获得x和y的最小(和最大)值?

换句话说:

minX是第1列中的最小值(第二个索引= 0,例如tab[xxx, 0]);
minY是第二列中的最小值(第二个索引= 1,例如tab[xxx, 1]);

2 个答案:

答案 0 :(得分:6)

var doubles = new double[4,2]{{1,2},{4,5},{7,8},{9,1}};
var min = System.Linq.Enumerable.Range(0, 4).Select(i => doubles[i, 1]).Min();

OR

var doubles = new double[4,2]{{1,2},{4,5},{7,8},{9,1}};
var min = System.Linq.Enumerable.Range(0, doubles.GetUpperBound(0)+1)
                                .Select(i => doubles[i, 1]).Min();

答案 1 :(得分:0)

double minX = tab[0,0], minY = tab[0,1];
String coordinate = "X";

foreach (double number in tab)
{
    if (coordinate == "X")
    {
        if(number < minX)
            minX = number;

        coordinate = "Y";
    }
    else if (coordinate == "Y")
    {
        if (number < minY)
            minY = number;

        coordinate = "X";
    }
}