假设我需要比较多个集合并找出哪些是等于或等于。
最后,我需要比较多个集并创建一个最终集, 从每组中获取唯一数据。我还需要处理所有物品 它们在不同的集合中重复。
答案 0 :(得分:4)
您应该使用System.Collections.Generic.HashSet<T>
您可以创建它:
var hashSet = new HashSet<T>(IEnumerable<T>)
然后使用方法进行比较:
hashSet.SetEquals(IEnumerable<T> list)
- 如果hashSet和list包含相同的项
hashSet.Overlaps(IEnumerable<T> list)
- 如果hashSet包含list
hashSet.IsSubsetOf(IEnumerable<T> list)
- 如果hashSet是列表的子集,则返回true(命令不重要)
hashSet.IsProperSubsetOf(IEnumerable<T> list)
- 与IsSubsetOf
相同,但订购事项
hashSet.IsSupersetOf(IEnumerable<T> list)
- 如果hashSet是列表的超集,则返回true(命令不重要)
hashSet.IsProperSupersetOf(IEnumerable<T> list)
- 与IsSupersetOf
相同,但订购事项
还有修改方法:
hashSet.UnionWith(IEnumerable<T> list)
- 将修改hashSet以包含存在的元素
在当前的hashSet或列表中或两者中。
hashSet.symmetricExceptWith(IEnumerable<T> list)
- 将修改hashSet以包含仅存在的元素
在当前的hashSet或列表中,但不在两者中。
hashSet.IntersectWith(IEnumerable<T> list)
- 将修改hashSet以包含存在的元素
在当前的hashSet和列表中。
有关HashSet
的详细信息,请参阅MSDN article。
答案 1 :(得分:3)
您可以使用HashSet<T>
类,它代表一组没有重复的元素,并公开IntersectWith
,UnionWith
,ExceptWith
等方法用于公共集合操作