如何使用 foreach 循环在列表中的短语之间添加分隔符?
Posted
技术标签:
【中文标题】如何使用 foreach 循环在列表中的短语之间添加分隔符?【英文标题】:How can I add a delimiter between phrases in a list with foreach loop? 【发布时间】:2020-02-01 10:56:34 【问题描述】:我有这个代码:
foreach (var node in nodes)
result += node.InnerText;
InnerText
只是 1-2 个字符,从不包含 #
符号。节点中节点的值可以有一个或多个。
我怎样才能分隔这些,例如,如果这些是节点的值:
"ab" and "cd"
结果将是ab#cd
。
我知道我可以将#
添加到值中,但是最后一个字符呢?如果我只是简单地添加了#
,那么我会得到ab#cd#
,这不是我想要的。
【问题讨论】:
您有几个选择,1) 检查您是否在第一个项目上,如果不是,则在添加项目之前添加分隔符 ,或者 2) 使用string.Join("#", collection)
但是你需要准备一个单独元素的集合
String.Join,取一个分隔符和一个可枚举的字符串。 result = String.join("#", nodes.Select(x=> x.InnerText))
C# List<string> to string with delimiter的可能重复
相关***.com/questions/581448/…
【参考方案1】:
在这种情况下使用string.Join
是一个不错的选择。
string result = string.Join("#", nodes.Select(n => n.InnerText))
【讨论】:
【参考方案2】:您可以使用.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;
【讨论】:
为什么要投反对票?请注意解释。我只是给出了另一种方法。 可能的原因太多了:回答一个明显的骗局。紧密循环中的字符串连接,仅限代码。我不喜欢以更笼统的方式对这些问题的投票模式,我在这里没有得到反对票或反对票 @xdtTransform 我刚刚很快发布了我的答案,并想在接下来的几分钟内更新。无论如何,你的评论是足够公平的。我同意你。我应该选择将问题标记为重复。以上是关于如何使用 foreach 循环在列表中的短语之间添加分隔符?的主要内容,如果未能解决你的问题,请参考以下文章
如何从 textarea 中的 @foreach 循环呈现 html
使用 ForEach SwiftUI Core Data 仅更改列表中的一项
@foreach 循环中的多种形式。如何使用 javascript 异步提交一个。 C# 核心剃刀