如何将一个字符串数组的每个元素与另一个字符串数组的每个元素进行比较?

问题描述:

我有两个字符串数组。我想从第一个数组中选择一个元素,并与第二个数组的每个元素进行比较。如果第一个数组中的元素存在于第二个数组的元素中,我想写例如(“元素存在”)或类似的东西。如何将一个字符串数组的每个元素与另一个字符串数组的每个元素进行比较?

这应该可以做两个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

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

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

你可以还请尝试:

ArrayA.All(ArrayB.Contains);