gpt4 book ai didi

c# - 比较两个哈希集

转载 作者:行者123 更新时间:2023-11-30 22:28:36 25 4
gpt4 key购买 nike

我有两个哈希集,它们从两个不同的文本文件加载数据。两个文本文件的内容如下所示:

name/12441431252132
name1/323244231244142
name2/32423452524234

我的代码当前加载这两个文件并确保我只有来自 textFile2 的唯一结果:

HashSet<string> txt1 = new HashSet<string>(File.ReadLines("textFile1.txt"));
HashSet<string> txt2 = new HashSet<string>(File.ReadLines("textFile2.txt"));

txt2.ExceptWith(txt1);

我的问题是,如果整行都匹配,它只会根据条件删除行。我想改为根据名称删除它。例如,如果 name2 在 textFile1 中,则永远不应包含它,即使/之后的 id 不同。

我将如何完成这个?

如果我的解释不好,请告诉我,我会尝试改进它 - 请原谅我的英语!

最佳答案

您可以只添加一些字符串拆分来分隔名称和其余内容 - 这种方法有点“肮脏”,所以在实际代码中我可能会使用 foreach 循环并引入专用类:

var content = File.ReadLines("textFile1.txt").Select(line => 
{
var parts = line.Split('/');
return new
{
Name = parts[0],
Content = parts[1]
};
});

HashSet<string> names = new HashSet<string>(content.Select(c=> c.Name));
HashSet<string> txt2 = new HashSet<string>(File.ReadLines("textFile2.txt"));
var uniques = txt2.Where(line => !names.Contains(line.Split('/')[0]));

关于c# - 比较两个哈希集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10704812/

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