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