如何将一个字符串数组的每个元素与另一个字符串数组的每个元素进行比较?
问题描述:
我有两个字符串数组。我想从第一个数组中选择一个元素,并与第二个数组的每个元素进行比较。如果第一个数组中的元素存在于第二个数组的元素中,我想写例如(“元素存在”)或类似的东西。如何将一个字符串数组的每个元素与另一个字符串数组的每个元素进行比较?
这应该可以做两个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再次寻求帮助。
答
foreach (string str in yourFirstArray)
{
if (yourSearchedArray.Contains(str))
{
Console.WriteLine("Exists");
}
}
答
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);
“这应该可以做两个for循环?”绝对!你有没有尝试写这两个循环?它是如何去的? – dasblinkenlight 2012-07-15 12:33:04
编写这篇文章可能需要更长的时间,而不是编写一个脚本来测试它。 #lazy – 2012-07-15 12:45:04
对不起,没有给出一个代码。我用我的代码编辑了第一篇文章。 – born2fr4g 2012-07-15 12:50:09