List <string>仅显示最后一项</string>

时间:2012-06-05 00:33:26

标签: c#

尝试从一系列零件名称中创建一个列表。它正在跳过显示除列表中最后一个名称之外的所有名称。为什么这样做?有没有更好的方法呢?

我的代码

    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
等。

4 个答案:

答案 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);
}