C# 编写列表的内容<;字符串>;输入到文本文件中
我有一个程序,检查两个文本文件中的一个特定字段,然后检查其中一个文件是否有指定字段。如果匹配,则匹配数存储到另一个列表中。我遇到的问题是,当我知道我有两个匹配项时,它只将第一个匹配项写入文本文件。我是C#的新手,因此如果您有任何帮助/建议,我将不胜感激,下面的代码正在进行检查C# 编写列表的内容<;字符串>;输入到文本文件中,c#,C#,我有一个程序,检查两个文本文件中的一个特定字段,然后检查其中一个文件是否有指定字段。如果匹配,则匹配数存储到另一个列表中。我遇到的问题是,当我知道我有两个匹配项时,它只将第一个匹配项写入文本文件。我是C#的新手,因此如果您有任何帮助/建议,我将不胜感激,下面的代码正在进行检查 while ((lineBeingRead = fileToRead.ReadLine()) != null) { if (lineBeingRead.IndexOf(" :22:", 0) == 0)
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;
}
}
}
谢谢,Ryan破发代码>负责,它将离开循环。 但是您也不希望使用重写整个文本文件的
writealText
,而是希望附加一行新行。我将采用这种方法:
string startPattern = " :22:";
List<string> lstStoreTwentyOne = File.ReadLines(path)
.Where(l => l.StartsWith(startPattern))
.Select(l => l.Substring(startPattern.Length))
.ToList();
中断代码>负责,它将离开循环。
但是您也不希望使用重写整个文本文件的writealText
,而是希望附加一行新行。我将采用这种方法:
string startPattern = " :22:";
List<string> lstStoreTwentyOne = File.ReadLines(path)
.Where(l => l.StartsWith(startPattern))
.Select(l => l.Substring(startPattern.Length))
.ToList();
WriteAllText
将删除现有文件,因此只会显示一个条目被写入
你会想要或者相反
或者(如果lstStore103
和lstStore101
都没有重复项):
WriteAllText
将删除现有文件,因此只会显示一个条目被写入
你会想要或者相反
或者(如果lstStore103
和lstStore101
都没有重复项):
请看:请看:谢谢你修复了它,我知道它需要重构和清理,但现在它可以工作了,所以我很高兴:)@RyanK一定要对Tim的答案投赞成票(他帖子左侧的向上箭头)。谢谢你修复了它,我知道它需要重构和更干净,但现在它可以工作了,所以我很高兴:)@RyanK一定要对Tim的答案投赞成票(他帖子左侧的向上箭头)。谢谢你的回复,Tim,这真的很有帮助,我已经接受了mjwillis作为答案,因为现在这可以满足我的需要,但当我来重构代码时,我肯定会使用你的答案,再次感谢你的帮助。谢谢你的回复Tim,这真的很有帮助,我已经接受了mjwillis作为答案,因为现在这可以满足我的需要,但当我来重构代码时,我肯定会使用你的答案,再次感谢你的帮助。
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);
}
}
}
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);
}