c# - 如何在 C# 中从 file1 中删除 file2 中存在的行

标签 c# linq

我想知道如何从 C# 中的 file2 中删除 file1 中的行。

我已经用 python 编写了它,但是我如何用 C# 编写它(性能并不重要)?

Python 中的代码如下所示:

file_1 = "file1.txt"
file_2 = "file2.txt"

data_1 = []
data_2 = []

with open(file_1,'r') as f:
    data_1 = f.readlines()

with open(file_2,'r') as f:
    data_2 = f.readlines()

for line in data_1:
    if line in data_2:
        print(f"Removing -> {line}")
        data_2.remove(line)

with open("output.txt",'w') as f:
    for line in data_2:
        f.write(line)

这是我的 C# 代码:

string fileName1 = @"c:\temp\file1.txt";
string fileName2 = @"c:\temp\file2.txt";   

var allText1 = File.ReadAllLines(fileName1);
var allText2 = File.ReadAllLines(fileName2);

allText1 = allText1.Where(o => !allText2.Where(p => p == o).Any()).ToArray();

如何获取被删除的行? 谢谢!

最佳答案

更新:

var file1 = File.ReadLines(file1path);
var file2 = File.ReadAllLines(file2path);
File.WriteAllLines("removed.txt", file1.Except(file2));

这会得到删除的行:)

关于c# - 如何在 C# 中从 file1 中删除 file2 中存在的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60263079/

相关文章:

c# - 使用linq Max()方法时如何获取 key

linq - 相当于 SQL IN 子句

c# - 顶级订单未知的订单列表

c# - 如何更改类/属性名称?

c# - 在 for 循环内声明的变量会影响循环的性能吗?

c# - Linq to Sql - 日期时间格式 - YYYY-MMM(2009 年 3 月)

c# - 为整数键控模型集合寻找优雅/高效的解决方案

javascript - 自定义错误消息未从 javascript ajax 返回自定义消息

c# - 是否可以从 Windows 窗体中的 SplitContainer 中删除 panel2?

c# - 如何生成三个和为1的随机数?