c# - 将 List<string> 的内容写入文本文件

标签 c#

我有一个程序,可以检查两个文本文件中的特定字段,然后检查任一文件是否具有指定字段。如果是,则匹配数将存储到另一个列表中。我遇到的问题是,当我知道我有两个匹配项时,它只是将第一个匹配项写入文本文件。我对 C# 相当陌生,因此任何帮助/建议将不胜感激,下面的代码正在执行检查。

while ((lineBeingRead = fileToRead.ReadLine()) != null)
{
    if (lineBeingRead.IndexOf("       :22:", 0) == 0)
    {
        lstTwentyOneCounter.Add(lineBeingRead.Substring(11));
        lstStoreTwentyOne = lstTwentyOneCounter;
    }
}

下面的代码正在写入文本文件。

foreach (var single103 in lstStore103)
{
    foreach (var single101 in lstStore101)
    {
        if (single101 == single103)
        {
            checkResults.Add(single103);
            System.IO.File.WriteAllText(@"H:\Compare.txt", single103);
            break;
        }
    }
}

谢谢,
瑞安

最佳答案

WriteAllTextoverwrite现有文件 - 因此只会出现一个条目被写入。

您会想要appendwrite all相反。

System.IO.File.Delete(@"H:\Compare.txt");

foreach (var single103 in lstStore103)
{
    foreach (var single101 in lstStore101)
    {
        if (single101 == single103)
        {
            checkResults.Add(single103);
            System.IO.File.AppendAllText(@"H:\Compare.txt", single103 + Environment.NewLine);
        }
    }
}

或者(如果lstStore103lstStore101都没有重复项):

System.IO.File.Delete(@"H:\Compare.txt");

foreach (var value in lstStore103.Intersect(lstStore101))
{
    checkResults.Add(value);
    System.IO.File.AppendAllText(@"H:\Compare.txt", value + Environment.NewLine);
}

关于c# - 将 List<string> 的内容写入文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46216248/

相关文章:

c# - View 模型在 ASP MVC 中传递 NULL

c# - File.Exists——不想创建新文件

c# - .NET Framework 和 .NET Standard 冲突(兼容性问题)

c# - 还有一个 "Use of unassigned local variable ' 随便什么'“问题

c# - 如何使用c#代码使每个单词的第一个字母大写

c# - Entity Framework Eager 只加载其他表的一个子集

c# - 使用 C#/.Net 时,只读如何影响目录?

c# - 保护 API 客户端与 WCF 服务器通信的最简单方法是什么?

c# - 多线程程序中的 IndexOutOfRange 异常

c# - Request.UserHostName 实际返回的是什么,是否可以将其转换为我可以获得主机条目的内容?