gpt4 book ai didi

.net - 与列表(字符串)连接

转载 作者:行者123 更新时间:2023-12-01 13:53:20 25 4
gpt4 key购买 nike

我很难确定如何将一个简单的字符串连接到每个元素的末尾。任何帮助表示赞赏。请参阅下面的示例代码:

Dim Results As New List(Of String)

Results.Add("Test1")
Results.Add("Test2")
Results.Add("Test3")

For Each item in Results
item = item.ToString.Concat(item.ToString, " xx") ' <--- This won't work!
Next

最佳答案

这里的问题是您只是让 item 变量指向一个全新的 String 对象。

改为执行此操作,它将执行您想要的操作:

For i As Integer = 0 To Results.Count - 1
Results(i) &= "xx"
Next

更新:

如果您想要一个更优雅但仍然有效的解决方案,请考虑在代码中的某处添加以下扩展方法:

Namespace SomeNamespace
<Microsoft.VisualBasic.HideModuleName()> _
Public Module SomeModule
<System.Runtime.CompilerServices.Extension()> _
Public Sub ForEachIndex(Of T)(ByVal collection As ICollection, ByVal action As Action(Of Integer))
For i As Integer = 0 To collection.Count
action(i)
Next
End Sub
End Module
End Namespace

从那时起,如果您在代码中导入 SomeNamespace 命名空间,就可以执行此操作。

Results.ForEachIndex(Sub(i) Results(i) &= "xx")

这样你既优雅又高效:没有创建新列表,旧字符串将准备好立即被垃圾收集。

此外,新创建的 ForEachIndex 扩展将适用于任何 ICollection 实现。 ;)

请注意,您还可以将其设为 IEnumerable 扩展并使用 LINQ 的 Count 扩展来了解您有多少元素。这将涵盖更多场景,但在某些情况下,您的里程可能会开始变化。请记住,IEnumerable 实例可能代表未编译的元素序列。

关于.net - 与列表(字符串)连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22544289/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com