2011-01-09 47 views
4
double[] tab = new double[10]; 

我知道我可以通過tab.Min()創建最小值。如何獲得給定索引的二維數組中的最小值?

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

這是座標表,在第2個索引中是0而x是1。有10分。

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

換句話說:

minX是在第一列中的最小的值(第二索引= 0 e.g tab[xxx, 0]);
minY是第二列中的最小值(第二個索引= 1,例如tab[xxx, 1]);

+0

我不知道你正在試圖獲得。你想要最小的一對(x,y) - 即最接近原點,還是試圖獲得區域的邊界 - 每個座標中的最小/最大值? – tvanfosson 2011-01-09 21:26:44

+2

Point [] tab = new Point [10];這是一組座標。 – 2011-01-09 21:27:47

回答

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(); 
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"; 
    } 
} 
相關問題