在我的C#程序中,我试图从txt文件中仅读取以Mr.,Ms。或Mrs.开头的行,然后将这些行打印到单独的txt文件中,但是只要我运行了已有的文件,没有内容写入新文件,因此它为空白。

这是我所拥有的:

var prefixes = new List<string> { "Mr.", "Mrs.", "Ms." };
var nameIDLines = File.ReadAllLines(filePath)
    .Where(line => prefixes.All(prefix => line.StartsWith(prefix)))
    .ToList();

filteredAsString = string.Join(Environment.NewLine, nameIDLines);

using (StreamWriter outputFile = new StreamWriter(mydocpath + @"\nameIDLines.txt"))
{
    outputFile.Write(filteredAsString);
}

最佳答案

All替换Any,因为字符串不能以所有前缀开头,只能是其中一个。

var nameIDLines = File.ReadAllLines(filePath)
    .Where(line => prefixes.Any(prefix => line.StartsWith(prefix)))
    .ToList();

09-28 00:53