如何摆脱IEnumerable列表中的正斜杠“ \\”

时间:2019-09-16 07:11:56

标签: c# list ienumerable

我有下面定义的两个列表

IEnumerable<string> fileNames = new DirectoryInfo(Path)
  .EnumerateFiles("fileServer.config", SearchOption.AllDirectories)
  .Select(fi => fi.DirectoryName)
  .Select(dirPath => dirPath.Substring(Path.Length));


List<string> subFolderNames = fileNames.ToList();

但是此subFolderNames的输出在每个元素的前面都带有\\,像这样

\\ ElementName

如何摆脱这个 \\

1 个答案:

答案 0 :(得分:3)

从技术上讲,您可以Trim个不需要的字符(它们是目录分隔符):

   ...
   .Select(dirPath => dirPath
      .Substring(Path.Length)
      .TrimStart(Path.AltDirectorySeparatorChar, Path.DirectorySeparatorChar)); 

或更改Substring参数:

   ...
   .Select(dirPath => dirPath.Substring(Path.Length + 1));

但是,如果您想要最大的目录名称

   IEnumerable<string> fileNames = new DirectoryInfo(Path)
     .EnumerateFiles("fileServer.config", SearchOption.AllDirectories)
     .Select(fi => fi.Name);