如何比较此嵌套foreach中的值。 我想比较,如果它们匹配打印YES例如。 干杯
using System;
class Program
{
static void Main()
{
// Use a string array to loop over.
string[] ferns =
{
"apple",
"Equisetopsida",
"Marattiopsida",
"Polypodiopsida"
};
string[] fruits=
{
"apple",
"mango",
"Marattiopsida",
"Polypodiopsida"
};
// Loop with the foreach keyword.
foreach (string value in ferns)
{
Console.WriteLine(value);
foreach (string value in fruits)
{
Console.WriteLine(value);
}
//I would like to compare values here.
//Compare frens values against fruits values.
//How can i achieve this
}
}
}
答案 0 :(得分:1)
foreach (string fern in ferns)
{
Console.WriteLine(fern);
foreach (string fruit in fruits)
{
Console.WriteLine(fruit);
if(fruit.Equals(fern))
Console.WriteLine("YES");
}
}
答案 1 :(得分:1)
选项A
foreach (string fernsvalue in ferns)
{
foreach (string fruitsvalue in fruits)
{
if (fernsvalue.Equals(fruitsvalue))
Console.WriteLine("They are equal");
}
}
选项B
List<string> fernsList = new List<string>(ferns.Length);
List<string> fruitsList = new List<string>(fruits.Length);
fernsList.AddRange(ferns);
fruitsList.AddRange(fruits);
List<string> Differences = fernsList.Except(fruitsList).ToList();
选项C
bool equal = ferns.SequenceEqual(fruits); //compares for exact equality
答案 2 :(得分:1)
value
此处不是关键字(通过它在某些情况下)。您所要做的就是选择您喜欢的任何变量名称
答案 3 :(得分:1)
你想比较它们以确定它们是否符合顺序?或者只是一个列表包含另一个列表?
如果订单计数,则使用计数器变量同时循环两者(只需要边界检查):
for (int x = 0; x < ferns.Length; x++)
{
if (ferns[x] == fruits[x])
{
Console.WriteLine("YES!");
}
}
如果它只需要包含它:
foreach (string fern in ferns)
{
if (fruits.Contains(fern))
Console.WriteLine("YES!");
}
这也是使用十字路口的好地方。交叉点需要两个列表并返回“两个”列表共有的所有项目。
IEnumerable<string> commonWords = ferns.Intersect(fruits);
答案 4 :(得分:0)
首先,在你的每一个foreach中,当前元素具有相同的名称,并且你将无法在第二个foreach中达到它们的范围。
要比较两个字符串,您可以使用String.Compare方法。例如:
foreach (string fern in ferns)
{
foreach (string fruit in fruits)
{
if(String.Compare(fern,fruit,false)==0)
{
Console.WriteLine("YES");
}
}
}
答案 5 :(得分:0)
您是否在尝试查看数组fruits
和ferns
中的元素是否匹配相同的索引?如果是这样,那么嵌套的foreach
循环不是实现此目的的最佳方法。使用for
循环
for (int i = 0; i < ferns.Length && i < fruits.Length; i++) {
if (fruits[i] == ferns[i]) {
Console.WriteLine("{0} YES!!!", fruits[i]);
}
}
如果您要查看ferns
数组中fruits
数组中的元素是否存在任何匹配,那么您可以尝试以下
foreach (string fern in ferns) {
Console.Write("{0} ", fern);
bool isMatch = false;
foreach (string fruit in fruits) {
if (fruit == fern) {
isMatch = true;
break;
}
}
Console.WriteLine(isMatch ? "YES" : "NO");
}