在form1我有这个代码:
using (WebClient client = new WebClient())
{
client.DownloadFile("http://www.sat24.com/foreloop.aspx?type=0&continent=europa#", localFilename + "Sat24_Temperature_Europe.html");
client.DownloadFile("http://www.sat24.com/foreloop.aspx?type=1&continent=europa#", localFilename + "Sat24_Rain_Europe.html");
client.DownloadFile("http://www.sat24.com/foreloop.aspx?type=2&continent=europa#", localFilename + "Sat24_Wind_europe.html");
client.DownloadFile("http://www.sat24.com/foreloop.aspx?type=3&continent=europa#", localFilename + "Sat24_Lightnings_Europe.html");
client.DownloadFile("http://www.sat24.com/foreloop.aspx?type=4&continent=europa#", localFilename + "Sat24_Cloudtypes_Europe.html");
client.DownloadFile("http://www.sat24.com/?ir=true&ra=true&li=false", localFilename + "Sat24_Cloudsheight_Europe.html");
client.DownloadFile("http://www.sat24.com/en/eu?ir=true", localFilename + "Sat24_Satellite_Europe.html");
}
MapsToRead = Directory.GetFiles(localFilename, "*.*");
for (int i = 0; i < MapsToRead.Length; i++)
{
string s = File.ReadAllText(MapsToRead[i]);
Maps.Add(s);
}
StartTags = new List<string>();
StartTags.Add("image2.ashx");
StartTags.Add("http://www.niederschlagsradar.de/images.aspx");
LastTags = new List<string>();
LastTags.Add("ra=true");
LastTags.Add("cultuur=en-GB&continent=europa");
LastTags.Add("ir=true");
由于在大多数情况下 html 文件中的标签是相同的,我只添加了需要的标签到 StartTags 和 LastTags。
现在在新课程中,我有一个方法正在做:
public ExtractImages(List<string> FirstTags, List<string> LastTags, List<string> Maps, string LocalFileDir, string UrlsDir)
{
localdir = LocalFileDir;
counter = 0;
imagesSatelliteUrls = new List<string>();
imagesRainUrls = new List<string>();
int startIndex = 0;
int endIndex = 0;
int position = 0;
for (int i = 0; i < FirstTags.Count; i++)
{
string startTag = FirstTags[i];
string endTag = LastTags[i];
startIndex = Maps[i].IndexOf(startTag);
while (startIndex > 0)
{
endIndex = Maps[i].IndexOf(endTag, startIndex);
if (endIndex == -1)
{
break;
}
string t = Maps[i].Substring(startIndex, endIndex - startIndex + endTag.Length);
imagesSatelliteUrls.Add(t);
在我对 Form1 中的标签进行更改之前,我只是将相同的标签添加到每个标签列表中 7 次,因为列表映射包含 7 个索引。然后在我做的新电话中:
for (int i = 0; i < FirstTags.Count; i++)
所以 FirstTags 包含 7 个索引 LastTags 包含 7 个索引, Maps 包含 7 个索引。但现在更改后 FirstTags 包含 2 个索引,LastTags 包含 3 个索引。Maps 包含 7 个索引。
我现在如何执行 FOR 循环,以便它将运行所有 7 个地图并为每个地图使用标签。
例如,对于 Maps[0],StartTag 是“image2.ashx”,但对于 Maps[1] 和 [2] 和 [4] [5] 和 [6],它的标签相同:“ http://www.niederschlagsradar。 de/images.aspx "
LastTags 也是如此。
现在 Form1 中的标签是这样的:
StartTags = new List<string>();
StartTags.Add("image2.ashx");
StartTags.Add("http://www.niederschlagsradar.de/images.aspx");
LastTags = new List<string>();
LastTags.Add("ra=true");
LastTags.Add("cultuur=en-GB&continent=europa");
LastTags.Add("ir=true");
这就是我更改之前旧版本的情况:
StartTags = new List<string>();
StartTags.Add("image2.ashx");
StartTags.Add("http://www.niederschlagsradar.de/images.aspx"); // Cloudstypes forecast map of europe
StartTags.Add("http://www.niederschlagsradar.de/images.aspx"); // Lightnings forecast map of europe
StartTags.Add("image2.ashx"); // Satellite map of europe
StartTags.Add("http://www.niederschlagsradar.de/images.aspx"); // Rain forecast map of europe
StartTags.Add("http://www.niederschlagsradar.de/images.aspx"); // Temperature forecast map of europe
StartTags.Add("http://www.niederschlagsradar.de/images.aspx"); // Wind forecast map of europe
LastTags = new List<string>();
LastTags.Add("ra=true"); // Cloudsheight forecast map of europe
LastTags.Add("cultuur=en-GB&continent=europa"); // Cloudstypes forecast map of europe
LastTags.Add("cultuur=en-GB&continent=europa"); // Lightnings forecast map of europe
LastTags.Add("ir=true"); // Satellite map of europe
LastTags.Add("cultuur=en-GB&continent=europa"); // Rain forecast map of europe
LastTags.Add("cultuur=en-GB&continent=europa"); // Temperature forecast map of europe
LastTags.Add("cultuur=en-GB&continent=europa"); // Wind forecast map of europe
由于其中一些标签大部分是相同的,我改变了它,但现在我如何在新类中创建 FOR 循环,因为每个 List 都有不同数量的索引?