如何使下面的DoScrape方法添加到外部CompanyInfo变量,然后在button1_Click循环访问该列表以写入文本文件?
namespace Test1
{
public partial class Form1 : Form
{
public class LocationNameAndLink
{
public string Link { get; set; }
public string Name { get; set; }
}
LocationNameAndLink CompanyInfo = new List<LocationNameAndLink>();
private void button1_Click(object sender, EventArgs e)
{
Parallel.ForEach(Brands, item =>
{
string initialSiteName = "http://www.site1.com/" + Brands;
DoScrape(initialSiteName);
});
StreamWriter sw03 = new StreamWriter("websiteCompanyDetails.txt");
foreach (var item in CompanyInfo)
{
sw03.WriteLine("\"" + item.Name + "\",\"" + item.Link + "\"" );
}
}
public static void DoScrape(string PageLink)
{
string SiteLink;
string SiteName;
SourceCode = WorkerClass.getSourceCode(nextPageLink);
SiteLink = SourceCode.Substring(0, 50);
SiteName = SourceCode.Substring(51, 50);
CompanyInfo.Add(new LocationNameAndLink
{
Name = SiteName,
Link = SiteLink
});
}
}
答案 0 :(得分:2)
您需要使DoScrape
成为实例方法,而不是静态方法。
静态方法并非特定于该类型的任何特定实例,因此它没有隐式this
引用 - 而您的CompanyInfo
字段是实例变量 - {{1}的每个实例有一个单独的变量。
有关Form1
含义的更多信息,请参阅MSDN - 这是一个需要理解的重要概念。