C# 列表<;字符串>;仅显示最后一项

C# 列表<;字符串>;仅显示最后一项,c#,C#,试图从一系列零件名称中列出一个列表。它将跳过显示列表中除最后一个以外的所有名称。。为什么要这样做?有更好的方法吗? 我的代码隐藏 List Ta1PartNumbers=ta1input.Split('\n').ToList()//试图在换行时分开。。这是正确的方法吗? foreach(TramPartNumbers中的字符串Tpartnumber) { Div1.InnerText=(Tpartnumber); } 列表是这样的: 零件号 1017foo 1121bar 等等。您在循环的每次

试图从一系列零件名称中列出一个列表。它将跳过显示列表中除最后一个以外的所有名称。。为什么要这样做?有更好的方法吗?

我的代码隐藏

List Ta1PartNumbers=ta1input.Split('\n').ToList()//试图在换行时分开。。这是正确的方法吗?
foreach(TramPartNumbers中的字符串Tpartnumber)
{
Div1.InnerText=(Tpartnumber);
}

列表是这样的:
零件号
1017foo
1121bar

等等。

您在循环的每次迭代中都重置innerText值,因此它只保留最后一个值。尝试使用
+=
运算符追加

foreach (string Tpartnumber in TransimPartNumbers)
{
    Div1.InnerHtml += Tpartnumber + "<br />";
}
foreach(transimpartnumber中的字符串Tpartnumber)
{
Div1.InnerHtml+=Tpartnumber+“
”; }
我犯的这个错误比我应该犯的更多。尝试:

Div1.InnerText = "";
foreach (string Tpartnumber in TransimPartNumbers)
{
   Div1.InnerText += (Tpartnumber);
}

基本上每次都会覆盖上一个值

我会避免使用你不需要的列表。请改用此拆分方法,但我认为您希望\r\n。。。和其他海报一样,您需要+=哪些附加,而不是+哪些更新

string[] lines = Regex.Split(ta1input, "\r\n");

foreach (string line in lines)
{
    Div1.InnerText += Tpartnumber;
}

循环的每次迭代都会用当前字符串替换
Div1
InnerText
。这就是为什么你只得到最后一个字符串,你写了所有以前的字符串

但是,为什么要拆线呢?如果只想将所有字符串写入div,可以执行以下操作:

Div1.InnerText = ta1Input;
你想要什么作为你的最终HTML

零件号
1017foo
1121bar
等等…

零件号
1017foo
1121bar
等
还是别的什么?就我个人而言,我更喜欢后者。我会这样做:

string[] Ta1PartNumbers = ta1input.Split('\n');

foreach (string Tpartnumber in Ta1PartNumbers)  
{
    var div = new HtmlGenericControl("div");
    div.InnerText = Tpartnumber;
    Div1.Controls.Add(div);
}

我将这样拆分:
ta1input.split('\n','\r',StringSplitOptions.RemoveEmptyEntries.ToList()
-只是为了确保您没有丢失CR字符。您也可以去掉
ToList()
并执行以下操作:
var Ta1PartNumbers=ta1input.Split('\n','\r',StringSplitOptions.RemoveEmptyEntries)约翰E,在你的文章末尾加上签名是不必要的,不鼓励这样做。如果您注意到,在每篇帖子下面都有一张小卡片,上面有您帐户的名称和链接。您需要使用
InnerHtml
,以免

被转义并替换为
br/
。但是,只有在您信任源字符串的情况下,才可以执行
Div1.InnerHtml=ta1input.Replace(“\n”,“
”)
,而不是所有的字符串连接和循环。当然,在我工作的地方,
InnerHtml
的使用永远不会通过代码审查,因为存在安全漏洞——将用户输入直接作为html注入。
string[] Ta1PartNumbers = ta1input.Split('\n');

foreach (string Tpartnumber in Ta1PartNumbers)  
{
    var div = new HtmlGenericControl("div");
    div.InnerText = Tpartnumber;
    Div1.Controls.Add(div);
}