【发布时间】:2021-11-14 23:15:17
【问题描述】:
我想使用 foreach 循环(在列表上循环)将多个“项目”插入到列表中。现在我想将这些行作为<td> 元素插入。但是通过在我要插入行的位置指定索引,前一个会被覆盖。如何在位置添加一行,然后在不覆盖之前添加的行的情况下添加其余行
private void Create_Driver_Report(string npcName)
{
var fileName = Get_Path("Driver_Reports.html");
var endTag = npcName;
var lineToAdd = "<!--New Line Here-->";
var htmlContent = File.ReadAllLines(fileName).ToList();
var index = htmlContent.FindIndex(x => x.Contains(lineToAdd));
htmlContent.Insert(index + 1, endTag);
File.WriteAllLines("drivers.html", htmlContent);
}
理论上我想怎么做
foreach (Drivers item in drivers)
{
Create_Driver_Report($"<td>{item.Driver_ID}</td>");
Create_Driver_Report($"<td>{item.Driver_Name}</td>");
Create_Driver_Report($"<td>{item.Vehicle_ID}</td>");
Create_Driver_Report($"<td>{item.Company_ID}</td>");
Create_Driver_Report($"<td>{item.Company_Name}</td>");
}
【问题讨论】:
-
Insert不会覆盖。但是,您每次都插入到相同的确切索引,所以也许这就是您认为它覆盖该行的原因。如果你只是增加你的索引,它将在前一个之后插入。 -
我知道这就是它发生的原因,但是如果我使用 foreach 循环,只会添加最后一个属性,所以这就是我问的原因,我想一次添加所有属性
-
这很混乱。你能解释一下你的目的到底是什么吗?例如,您能否解释一下您提到的两个文件的作用:
Driver_Reports.html和drivers.html?您能否详细说明占位符"<!--New Line Here-->"的作用? -
所以 driver_reports.html 是我用于 pdf 文档的模板,drivers.html 是“更新的模板”,然后“” 有点像我想在其中插入新行的索引
-
Driver_Reports.html是您填写的某种模板,drivers.html是保存由该模板制成的驱动程序集合的目标文件吗?
标签: c# wpf file-handling