如何在带有 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;
    }
}