我有一个包含多个整数列表的HashSet - 比如说HashSet<List<int>>
为了保持唯一性,目前我必须做两件事情:
1. 手动遍历现有的列表,使用SequenceEquals
查找重复项。
2. 对单个列表进行排序,以便SequenceEquals
能够正常工作。
是否有更好的方法来处理这个问题?是否存在可供我提供给HashSet的现有IEqualityComparer,使HashSet.Add()
可以自动处理唯一性?
var hashSet = new HashSet<List<int>>();
for(/* some condition */)
{
List<int> list = new List<int>();
...
/* for eliminating duplicate lists */
list.Sort();
foreach(var set in hashSet)
{
if (list.SequenceEqual(set))
{
validPartition = false;
break;
}
}
if (validPartition)
newHashSet.Add(list);
}
HashSet<List<int>>
似乎不是一个常用的工具。 - marcind