假设我有一个SortedList
字符串集合(尽管通常任何集合类型都应该相同),而且它们都是文件名...
现在,我想在该集合中的每个项目后面附加(insert
,位置0)相同的完整文件路径。
而不是进行For Each
循环,就像这样:
For Each entry As KeyValuePair(Of String, String) In mySortedList
entry.Value = entry.Value.Insert(0, "C:\some\path\")
Next
我想知道是否有一种方法可以做到这一点? Kinda遵循以下原则:
' Pseudo code (I know its wrong, just demonstrating the idea)
mySortedList = mySortedList.Items.Insert(0, "C:\some\path\")
然后我将有一个新的排序列表,其中包含每个项目的完整路径。
自从我用PHP编码以来已经有一段时间了,但是在内存上,我认为Array_Walk()
所做的事情与我要执行的操作类似。
答案 0 :(得分:1)
这有点骇人听闻,但您可以尝试以下方法:
var newFilenames = mySortedList.Values.Cast<string>().Select(s => s.Insert(0, @"C:\some\path\"));
这对我有用,但是它可能不仅仅带来了集合方面的性能提升。
答案 1 :(得分:0)
如果使用Linq
,则可以。
list.Select(s => "C:\some\path\" + s);
答案 2 :(得分:0)
VB解决方案:
Dim list As List(Of String) = New List(Of String) From {"path one", "Path two", "Path three"}
list = list.Select(Function(s) s.Insert(0, "C:\some\path\")).ToList()