我有2个foreach
个循环,1个嵌套在另一个循环中。共有115个项目共有115个。我想要做的是将第一个集合中的第一个项目写入控制台,然后将第二个集合中的第一个项目写入控制台。返回第一个集合并执行第二个项目,依此类推。
我理解为什么嵌套循环一遍又一遍地运行,我只是无法弄清楚如何实现我想要实现的目标。
var Titles = chromeDriver.FindElements(By.CssSelector("div.contentItem__contentWrapper h1"));
var Text = chromeDriver.FindElements(By.CssSelector("div.contentItem__contentWrapper p"));
foreach (var title in Titles)
{
string t = title.Text;
Console.WriteLine($"Title: {t}");
foreach (var text in Text)
{
string p = text.Text;
Console.WriteLine($"Article Text: {p}");
}
}
答案 0 :(得分:5)
您需要知道当前正在使用第一个集合中的哪个项目。这是通过使用for
循环最简单的方法。然后,您可以从第二个集合中访问正确的项目:
for(int i = 0; i < Titles.Count; i++)
{
Console.WriteLine($"Title: {Titles[i].Text}");
Console.WriteLine($"Article Text: {Text[i].Text}");
}
答案 1 :(得分:5)
你应该让它成为一个循环并遍历两个集合。
for (var x = 0; x < Math.Max(Titles.Count, Text.Count); x++)
{
if (Titles.Count > x)
{
Console.WriteLine($"Title: {Titles[x].Text}");
}
if (Text.Count > x)
{
Console.WriteLine($"Article Text: {Text[x].Text}");
}
}