![](/img/trans.png)
[英]How to replace every second space, but not first/last with “ ” in a given string?
[英]replace space for every string in the list
我试图用下划线重命名每个文件的空白空间:
DirectoryInfo dir = new DirectoryInfo(@"Q:\Audio");
var files = (from f in dir.GetFiles() select f.FullName);
files.ToList().ConvertAll( s => s.Replace( " ", "_") );
但是它不起作用,我尝试使用一个foreach循环,它抱怨“由于它是一个“ foreach迭代变量”,因此无法分配给“ element””
我该如何处理?
ConvertAll
返回一个新的List
。
var renamedFiles = files.ToList().ConvertAll(s => s.Replace(" ", "_"));
您可以使用以下代码块之一:
DirectoryInfo dir = new DirectoryInfo(@"C:\");
var files = (from f in dir.GetFiles() select f.FullName.Replace(" ", "_"));
要么:
DirectoryInfo dir = new DirectoryInfo(@"C:\");
var files = (from f in dir.GetFiles() select f.FullName);
var fileNames = (from fn in files select fn.Replace(" ", "_"));
要么:
DirectoryInfo dir = new DirectoryInfo(@"C:\");
var files = (from f in dir.GetFiles() select f.FullName);
var fileNames = files.Select(s => s.Replace(" ", "_"));
或(错误的主意):
DirectoryInfo dir = new DirectoryInfo(@"C:\");
var files = (from f in dir.GetFiles() select f.FullName);
var fileNames = files.ToList().ConvertAll(s => s.Replace(" ", "_"));
编辑1:但我建议使用选择功能,最好不要为IQueryable之类的延迟对象调用.ToList()方法。
您实际上需要重置变量files
。 更改最后一行以使用ConvertAll
的输出重置files
变量。
files = files.ToList().ConvertAll( s => s.Replace( " ", "_") );
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.