我正在尝试找到一种方法来比较2个文件中的某些文本以及是否找到匹配项。
以下是文件示例;
'文件A'
EX1,TEXAS,24
EX2,迈阿密,78
EX3,亚特兰大,56
EX4,NY,90
...
'文件B'
EX1,JHON,1110
EXA,DAVID,1060
EXB,CATHY,230
EX4,ROBERT,1200
...
使用我的2个示例文件,我想要搜索它们并找到匹配项(
EX1,TEXAS,24
&安培;
EX4,NY,90
)??!
这是我的尝试
'sample' | 'django'
答案 0 :(得分:0)
var matches = File.ReadAllText(fileA).Split(',')
.Intersect(File.ReadAllText(fileB).Split(','));
答案 1 :(得分:0)
您可以使用File.ReadAllLines
将文件的所有行放到数组中:
var alphaFileContents = File.ReadAllLines(fileA);
在您的代码中,您正在检查文件A StartWith
中哪些项目与文件B中的项目相同,直到第一个逗号。我们可以使用string.Split(',')[0]
从fileB获取所有前缀(行内容直到第一个逗号),它将字符串拆分为逗号字符上的数组,然后返回第一个项目(在索引{{1}处) }):
0
现在,我们可以通过获取fileA中以fileB中的项开头的所有项来找到类似项。下面的var betaFilePrefixes = File.ReadAllLines(fileB).Select(line => line.Split(',')[0]);
子句代表"其中任何Where
项目都以alpha
中的项目开头:
betaFilePrefixes
然后,您可以使用var similarItems = alphaFileContents
.Where(alpha => betaFilePrefixes.Any(beta => alpha.StartsWith(beta)));
将所有匹配行写入results
文件:
File.WriteAllLines
所以,总而言之,你可以这样做:
File.WriteAllLines(fileC, similarItems);