如何在带有 foreach 循环的列表中的短语之间添加分隔符?
How can I add a delimiter between phrases in a list with foreach loop?
我有这个代码:
foreach (var node in nodes)
{
result += node.InnerText;
}
InnerText
只是 1-2 个字符,从不包含 #
符号。 nodes中可以有一个或多个node值。
我如何分隔这些中的每一个,例如,如果这些是节点的值:
"ab" and "cd"
结果会是 ab#cd
。
我知道我可以将 #
添加到该值,但是最后一个字符呢?如果我只是简单地添加 #
那么我会得到 ab#cd#
这不是我想要的。
在这种情况下使用 string.Join
是个好地方。
string result = string.Join("#", nodes.Select(n => n.InnerText))
您可以使用.IndexOf
来了解foreach
循环中节点的当前索引。只要节点的当前索引不等于 (nodes.Count - 1)
.
,您就应该连接 node.InnerText
foreach (var node in nodes)
{
//You can identify the last element in nodes like below
if (nodes.IndexOf(node) != nodes.Count - 1)
{
result += node.InnerText;
}
}
我有这个代码:
foreach (var node in nodes)
{
result += node.InnerText;
}
InnerText
只是 1-2 个字符,从不包含 #
符号。 nodes中可以有一个或多个node值。
我如何分隔这些中的每一个,例如,如果这些是节点的值:
"ab" and "cd"
结果会是 ab#cd
。
我知道我可以将 #
添加到该值,但是最后一个字符呢?如果我只是简单地添加 #
那么我会得到 ab#cd#
这不是我想要的。
在这种情况下使用 string.Join
是个好地方。
string result = string.Join("#", nodes.Select(n => n.InnerText))
您可以使用.IndexOf
来了解foreach
循环中节点的当前索引。只要节点的当前索引不等于 (nodes.Count - 1)
.
node.InnerText
foreach (var node in nodes)
{
//You can identify the last element in nodes like below
if (nodes.IndexOf(node) != nodes.Count - 1)
{
result += node.InnerText;
}
}