2012-07-15 77 views
0

我有兩個字符串數組。我想從第一個數組中選擇一個元素,並與第二個數組的每個元素進行比較。如果第一個數組中的元素存在於第二個數組的元素中,我想寫例如(「元素存在」)或類似的東西。如何將一個字符串數組的每個元素與另一個字符串數組的每個元素進行比較?

這應該可以做兩個for循環?

編輯

好吧,我finaly achived我想usign驗證碼:

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 2012-07-15 12:33:04

+1

編寫這篇文章可能需要更長的時間,而不是編寫一個腳本來測試它。 #lazy – 2012-07-15 12:45:04

+0

對不起,沒有給出一個代碼。我用我的代碼編輯了第一篇文章。 – born2fr4g 2012-07-15 12:50:09

回答

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

這是一個很好的解決方案,但是你不應該創建List <>它會創建一個新的數組副本是不必要的開銷。你可以直接使用yourStringArray.Contains(str)。 – 2012-07-15 12:37:38

+0

@ChrisTaylor你是對的,更新 – eyossi 2012-07-15 12:42:16

+0

即時通訊使用.NET框架2.0和o有這個錯誤甚至當我添加使用System.Linq。 – born2fr4g 2012-07-15 13:42:53

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 2012-07-15 13:43:37

-1

你可以還請嘗試:

ArrayA.All(ArrayB.Contains); 
相關問題