2012-06-25 3 views
0

foreach 내부에 foreach가 중첩되어 있습니다. d가 다른 모든 d 's보다 작은 지 여부를 확인해야합니다. 어떻게해야합니까? 이전에 어떤 변수가 설정되었는지 확인할 수있는 방법이 있다면 직접 할 수 있습니다. 그렇지 않다면 해결책을 고안해 주시겠습니까?이전 변수가 설정된 변수에 어떻게 액세스합니까?

foreach (DataRow newRow1 in dt.Rows) 
      { 
       string zipCode1 = newRow1[2].ToString(); 
       double latitude2 = Convert.ToDouble(newRow1[3]); 
       double longitude2 = Convert.ToDouble(newRow1[4]); 

       foreach (DataRow newRow2 in dt2.Rows) 
       { 
        if (newRow2[2].ToString().Equals(zipCode1)) 
        { 
         newRow1[5] = newRow2[1].ToString(); 
         double latitude = Convert.ToDouble(newRow1[3]); 
         double longitude = Convert.ToDouble(newRow1[4]); 
         double d = Math.Sqrt(Math.Abs(latitude - latitude2) * Math.Abs(latitude - latitude2) + Math.Abs(longitude - longitude2) * Math.Abs(longitude - longitude2)); 
         Console.WriteLine("Found match!"); 
        } 
       } 
      } 
+0

가능한 중복 [의 최소 및 최대 값을 선택하는 방법 데이터 테이블의 열?] (http://stackoverflow.com/questions/2442525/how-to-select-min-and-max-values-of-a-column-in-a-datatable) – Magnus

답변

2

이 선형 검색으로 min을 찾는 좋은 오래된 알고리즘에 해당 : 여기

내 코드입니다

foreach (DataRow newRow1 in dt.Rows) 
     { 
      string zipCode1 = newRow1[2].ToString(); 
      double latitude2 = Convert.ToDouble(newRow1[3]); 
      double longitude2 = Convert.ToDouble(newRow1[4]); 

      // Start minD at the max value 
      double minD = double.MaxValue; 
      foreach (DataRow newRow2 in dt2.Rows) 
      { 
       if (newRow2[2].ToString().Equals(zipCode1)) 
       { 
        newRow1[5] = newRow2[1].ToString(); 
        double latitude = Convert.ToDouble(newRow1[3]); 
        double longitude = Convert.ToDouble(newRow1[4]); 
        double d = Math.Sqrt(Math.Abs(latitude - latitude2) * Math.Abs(latitude - latitude2) + Math.Abs(longitude - longitude2) * Math.Abs(longitude - longitude2)); 
        minD = Math.Min(minD, d); 
        Console.WriteLine("Found match!"); 
       } 
      } 
      Console.WriteLine("Min D: {0}", minD); 
     } 
+0

감사합니다. ! –

+0

또한 추가 할 내용을 추가 할 때 오류가 발생합니다. "입력 문자열의 형식이 올바르지 않습니다." –