我有一个字符串列表List<string> blobsToCopy
var newList = blobsToCopy.Select(GetDiskNameWithoutFolder);
private static string GetDiskNameWithoutFolder(string path) {...}
如何更改blobsToCopy
中的所有值而不创建新的IEnumerable<string>
?
答案 0 :(得分:6)
您不使用LINQ,只需使用简单的for循环并用修改后的版本替换每个项目。
for (var i = 0; i < blobsToCopy.Count; i++)
{
blobsToCopy[i] = GetDiskNameWithoutFolder(blobsToCopy[i]);
}
答案 1 :(得分:1)
除非我错过了一些明显的东西,否则一个好的老式循环又有什么不妥?
for(var i=0; i < blobsToCopy.Count;i++)
{
// do whatever....
}
答案 2 :(得分:1)
嗯,字符串是不可变的,所以你不能直接编辑它们。相反,您可以使用blobsToCopy[i]
修改列表。这将使您的列表保持不变,并允许您编辑列表元素指向的字符串。
答案 3 :(得分:0)
也许您可以使用ForEach linq实现。目前没有可用的c#编译器,所以我无法测试它。
list.ForEach(c => c = GetDiskNameWithoutFolder(c));