C# 如何使多个列表的每个元素在DataGrid上显示在一行中
我有一个网络爬虫,可以从航空公司网站获取数据 我希望程序在各自的行中显示每个元素C# 如何使多个列表的每个元素在DataGrid上显示在一行中,c#,selenium,uwp-xaml,C#,Selenium,Uwp Xaml,我有一个网络爬虫,可以从航空公司网站获取数据 我希望程序在各自的行中显示每个元素 foreach (string url in urlList) { driver.Navigate().GoToUrl(url); try { var DepAirport = driver.FindElementsByXPath(
foreach (string url in urlList)
{
driver.Navigate().GoToUrl(url);
try
{
var DepAirport = driver.FindElementsByXPath("//td[@class='depdest']/div[@class='content']").ToList();
var ArrAirport = driver.FindElementsByXPath("//td[@class='arrdest']/div[@class='content']").ToList();
var DepTime = driver.FindElementsByXPath("//td[@class='depdest']/div[@class='content emphasize']").ToList();
var ArrTime = driver.FindElementsByXPath("//td[@class='arrdest']/div[@class='content emphasize']").ToList();
var Price = driver.FindElementsByXPath("//td[@class='fareselect standardlowfare']/div[@class='content']/label[@class='label seatsokfare']").ToList();
foreach(var da in DepAirport)
{
_entries.Add(new EntryModel { DepartureAirport = da.Text });
}
foreach (var aa in ArrAirport)
{
_entries.Add(new EntryModel { ArrivalAirport = aa.Text });
}
foreach (var dt in DepTime)
{
_entries.Add(new EntryModel { DepartureTime = dt.Text });
}
foreach (var at in ArrTime)
{
_entries.Add(new EntryModel { ArrivalTime = at.Text });
}
foreach (var p in Price)
{
_entries.Add(new EntryModel { Price = p.Text });
}
}
catch (Exception e)
{
}
它收集数据并将其显示在网格上,但结果如下所示:
您需要设置所有
EntryModel
属性。像这样:for (var i = 0; i < DepAirport.Count; i++)
{
_entries.Add(new EntryModel
{
DepartureAirport = DepAirport[i].Text,
ArrivalAirport = ArrAirport[i].Text,
DepartureTime = DepTime[i].Text,
ArrivalTime = ArrTime[i].Text,
Price = Price[i].Text
});
}
for(变量i=0;i
问题是,每次调用
\u entries.Add(..
都会创建一个新条目,从而创建一个新行。但是,每行只有一个属性集。@NicoZhu MSFT.好的,那么还有一个问题,如果DepAirport.Count不止一个,比如说2。当循环再次运行时,它会抛出一个异常“system.argumentoutofrangeexception”。如果您有其他问题,请随时在so中发布新线程。