修剪文本文件中的每一行,然后将结果保存到数组中

时间:2014-07-25 18:47:40

标签: c# arrays trim

我需要读取一个本地文本文件,每行都有一个文件名。每个文件名都需要修剪它的扩展名。当我到达需要将修剪结果保存到另一个阵列的部分时,我遇到了一些麻烦。

到目前为止,我有:

string path = @"C:\Users\path\file.txt";

      string[] readText = File.ReadAllLines(path);
      foreach (string s in readText)
      {
          string result = Path.GetFileNameWithoutExtension(s);

          //here I can print the result to the screen 
          //but I don't know how to save to another array for further manipulation    

      }

如果您需要进一步澄清,我会尽力更清楚。 提前致谢。

3 个答案:

答案 0 :(得分:4)

您也可以使用Linq执行此操作:

var path = @"C:\Users\path\file.txt";
var trimmed =
    File.ReadAllLines(path)
        .Select(Path.GetFileNameWithoutExtension)
        .ToArray();

答案 1 :(得分:3)

使用for循环代替foreach

string path = @"C:\Users\path\file.txt";
string[] readText = File.ReadAllLines(path);
for( int i = 0; i < readText.Length; i++ )
    readText[i] = Path.GetFileNameWithoutExtension( readText[i] );

答案 2 :(得分:0)

分配一个与原始数组大小相同的新数组,然后通过索引进行插入。

  string path = @"C:\Users\path\file.txt";

  string[] readText = File.ReadAllLines(path);
  string[] outputArray = new string[readText.Length];
  int index = 0;
  foreach (string s in readText)
  {
      outputArray[index++] = Path.GetFileNameWithoutExtension(s);
  }