尝试从一系列零件名称中创建一个列表。它正在跳过显示除列表中最后一个名称之外的所有名称。为什么这样做?有没有更好的方法呢?
我的代码
List<string> Ta1PartNumbers = ta1input.Split('\n').ToList<string>(); //Trying to split at the line break.. Would this be the proper way to do it?
foreach (string Tpartnumber in TramPartNumbers)
{
Div1.InnerText = (Tpartnumber);
}
左列表是这样的:
的 Part_numbers
1017foo
1121bar
等。
答案 0 :(得分:5)
您在循环的每次迭代中重置innerText值,因此它只保留最后一个。尝试使用+=
运算符
foreach (string Tpartnumber in TransimPartNumbers)
{
Div1.InnerHtml += Tpartnumber + "<br />";
}
答案 1 :(得分:1)
我犯的错误比我应该做的更多。尝试:
Div1.InnerText = "";
foreach (string Tpartnumber in TransimPartNumbers)
{
Div1.InnerText += (Tpartnumber);
}
您基本上每次都会覆盖之前的值。
答案 2 :(得分:1)
我会避免在你不需要的地方使用List。使用这种拆分方法,但我认为你想要\ r \ n ......和其他海报一样,你需要+ =附加,而不是+更新。
string[] lines = Regex.Split(ta1input, "\r\n");
foreach (string line in lines)
{
Div1.InnerText += Tpartnumber;
}
答案 3 :(得分:0)
循环的每次迭代都会用当前字符串替换InnerText
Div1
。这就是为什么你只得到最后一个字符串,你写了所有以前的字符串。
但是,为什么甚至分裂字符串?如果您只想将所有字符串写入div,您可以这样做:
Div1.InnerText = ta1Input;
您想要什么作为最终HTML?
Part_numbers<br/>
1017foo<br/>
1121bar<br/>
etc..<br/>
或者
<div>Part_numbers</div>
<div>1017foo</div>
<div>1121bar</div>
<div>etc..</div>
还是其他什么?就个人而言,我更喜欢后者。我会做这样的事情:
string[] Ta1PartNumbers = ta1input.Split('\n');
foreach (string Tpartnumber in Ta1PartNumbers)
{
var div = new HtmlGenericControl("div");
div.InnerText = Tpartnumber;
Div1.Controls.Add(div);
}