2012-07-15 2 views
0

두 개의 문자열 배열이 있습니다. 첫 번째 배열에서 하나의 요소를 선택하고 두 번째 배열의 각 요소와 비교하려고합니다. 첫 번째 배열의 요소가 두 번째 배열의 요소에 존재하는 경우 (예 : "요소가 있음") 또는 이와 비슷한 것을 작성합니다.하나의 문자열 배열의 각 요소를 다른 문자열 배열의 모든 요소와 비교하려면 어떻게해야합니까?

두 개의 for 루프와 함께 할 수 있습니까?

EDIT 나는 마침내 내가이 코드 usign 원하는 것을 achived 확인

:

string[] ArrayA = { "dog", "cat", "test", "ultra", "czkaka", "laka","kate" }; 
string[] ArrayB = { "what", "car", "test", "laka","laska","kate" }; 

bool foundSwith = false; 

for (int i = 0; i < ArrayA.Length; i++) 
{ 

    for (int j = 0; j < ArrayB.Length; j++) 
    { 
     if (ArrayA[i].Equals(ArrayB[j])) 
     { 
      foundSwith = true; 
      Console.WriteLine("arrayA element: " + ArrayA[i] + " was FOUND in arrayB"); 
     } 
    } 

    if (foundSwith == false) 
    { 
     Console.WriteLine("arrayA element: " + ArrayA[i] + " was NOT found in arrayB"); 
    } 
    foundSwith = false; 
} 

나는이 두 배열을 비교하는 것이 좋습니다 다른 사람을 도움이 될 것입니다 희망을). 이 모든 걸 발견 했어 스위치. Thx 다시 한번 도움을 요청하십시오.

+2

"두 개의 for 루프와 함께 할 수 있습니까?" 전혀! 이 두 개의 문장을 쓰려고 했습니까? 어떻게 된거야? – dasblinkenlight

+1

테스트를 위해 스크립트를 작성하는 것보다이 글을 쓰는 데 더 많은 시간이 걸릴 것입니다. #lazy –

+0

코드를 제공하지 않아서 죄송합니다. 내 코드로 첫 번째 게시물을 편집했습니다. – born2fr4g

답변

4
foreach (string str in yourFirstArray) 
{ 
    if (yourSearchedArray.Contains(str)) 
    { 
     Console.WriteLine("Exists"); 
    } 
} 
+2

좋은 메신저,하지만 당신은 List <>를 생성해서는 안 배열의 새 복사본을 만듭니다 불필요한 오버 헤드입니다. yourStringArray.Contains (str)를 직접 사용할 수 있습니다. –

+0

@ChrisTaylor 당신이 맞습니다, 업데이트 된 – eyossi

+0

메신저 .NET Framework 2.0을 사용하고 있고 System.Linq를 사용하여 추가 할 때도 오류가 발생합니다. – born2fr4g

1
foreach (string str in strArray) 
{ 
    foreach (string str2 in strArray2) 
    { 
     if (str == str2) 
     { 
      Console.WriteLine("element exists"); 
     } 
    } 
} 

문자열이 strArray2

bool matchFound = false; 
foreach (string str in strArray) 
    { 
     foreach (string str2 in strArray2) 
     { 
      if (str == str2) 
      { 
       matchFound = true; 
       Console.WriteLine("a match has been found"); 
      } 
     } 

     if (matchFound == false) 
     { 
      Console.WriteLine("no match found"); 
     } 
    } 

또는 코드의 적은 선에서이 일을하는 또 다른 방법이 존재하지 않을 때 표시 업데이트 :

foreach (string str in strArray) 
{ 
    if(strArray2.Contains(str)) 
    { 
     Console.WriteLine("a match has been found"); 
    } 
    else 
    { 
     Console.WriteLine("no match found"); 
    } 
} 
+0

좋은하지만이 요소를 표시하기위한 if 및 else statmant이 존재하지 않는 이상한 결과가 나타납니다. 오버 반복을 좋아하십시오. 이 기능을 추가하는 방법 - 요소가 존재할 때 요소가 존재하지만 요소가 존재하지 않는 경우? – born2fr4g

-1

당신은 할 수 있습니다 또한 시도하십시오 :

ArrayA.All(ArrayB.Contains); 
관련 문제