[英]How to compare values foreach inside a foreach
如何在此嵌套的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
}
}
}
foreach (string fern in ferns)
{
Console.WriteLine(fern);
foreach (string fruit in fruits)
{
Console.WriteLine(fruit);
if(fruit.Equals(fern))
Console.WriteLine("YES");
}
}
選項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
value
在這里不是關鍵字(在某些情況下是通過關鍵字)。 您要做的就是選擇任何您喜歡的變量名
您是否要比較它們以查看它們是否順序匹配? 還是僅僅一個列表包含了另一個列表?
如果訂單計數,則使用計數器變量同時遍歷兩個變量(只是需要邊界檢查):
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);
首先,在您的每個foreach中,當前元素具有相同的名稱,並且您將無法在第二個foreach中達到劣勢。
要比較兩個字符串,可以使用String.Compare方法。 例如:
foreach (string fern in ferns)
{
foreach (string fruit in fruits)
{
if(String.Compare(fern,fruit,false)==0)
{
Console.WriteLine("YES");
}
}
}
您是否要查看數組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]);
}
}
相反,如果您要查看fruits
數組中的ferns
數組中的元素是否完全匹配,則可以嘗試以下操作
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");
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.