gpt4 book ai didi

c# - 如何在另一个文本文件中搜索文本文件中的行

转载 作者:太空宇宙 更新时间:2023-11-03 22:58:02 25 4
gpt4 key购买 nike

我有 2 个文本文件,我想读取这些文件并确定文件 2 中是否存在文件 1 中的任何行。

file1 中的每一行包含 file2 中行信息的子集(file2 中的每一行都比 file1 更完整)。例如,file1 的行有列 (x,y,z),file2 的行有列 (x,y,z,w)。

我想读取 file1,对于 file1 中也存在于 file2 中的任何行,我想保存 file2 中的那一行(x,y,z,w)

我写了这段代码,但这没有给我任何答案:

var f1Lines = File.ReadAllLines(@"D:\test1.txt");
var f2LineInf1 = File.ReadLines(@"D:\test2.txt")
.Where(line => f1Lines.Contains(line))
.Select(line => line).ToList();

File.WriteAllLines(@"D:\result.txt", f2LineInf1);

我的文件很大(600 万条记录),我想在尽可能短的时间内得出结果。

一行文字1:

memberID        productID   Date            Rating  
A1004AX2J2HXGL B0007RT9LC May 30, 2005 3

一行 text2 有上面的列 + 标题和正文。

最佳答案

您编写的代码正在检查 f1Lines 中是否有任何行以 f2LineInf1 中的当前行开头。因为我们知道第一个文件中的每一行都包含第二个文件中行的子集,所以这永远不会成立。

我们真正想做的是,对于第二个文件中的每一行,查看第一个文件中是否有任何行与第二个文件行的开头匹配。

这可以通过以下方式完成:

var f1Lines = File.ReadAllLines(@"f:\public\temp\temp1.txt");
var f2LineInf1 = File.ReadLines(@"f:\public\temp\temp2.txt")
.Where(line => f1Lines.Any(line.StartsWith));

File.WriteAllLines(@"f:\public\temp\result.txt", f2LineInf1);

关于c# - 如何在另一个文本文件中搜索文本文件中的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44464917/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com