我有两个这样的哈希集:
HashSet<string> log1 = new HashSet<string>(File.ReadLines("log1.txt"));
HashSet<string> log2 = searcher(term);
我如何比较两者?
我想确保log2
不包含log1
中的任何条目。换句话说,我想删除log1
内log2
内的所有项目(如果有)。
答案 0 :(得分:15)
要删除log2
中log1
的所有项目,您可以使用HashSet<T>.ExceptWith Method:
log2.ExceptWith(log1);
或者,您可以使用HashSet<T>创建新的Enumerable.Except Extension Method而不修改两个原始集:
HashSet<string> log3 = new HashSet<string>(log2.Except(log1));
答案 1 :(得分:7)
答案 2 :(得分:1)
您是否看过ExceptWith
函数?
从当前HashSet对象中删除指定集合中的所有元素。