假設我需要比較多個集合並找出哪些是等於或不是。最後,我需要比較多個集合,並創建一個最終集合, 包含從每個集合中獲取的唯一數據。此外,我需要處理所有項目 這是重複在不同的集合。什麼是最適合的數據結構在C#中使用Set#
回答
方法你應該使用System.Collections.Generic.HashSet<T>
你可以創建它想:
var hashSet = new HashSet<T>(IEnumerable<T>)
,然後利用各種方法來比較:
hashSet.SetEquals(IEnumerable<T> list)
- 如果HashSet的和列表中包含相同的項目
hashSet.Overlaps(IEnumerable<T> list)
- 如果HashSet的包含列表
hashSet.IsSubsetOf(IEnumerable<T> list)
- 如果HashSet的是列表的子集將返回true (順序並不重要)
hashSet.IsProperSubsetOf(IEnumerable<T> list)
- 同IsSubsetOf
但爲了此事
hashSet.IsSupersetOf(IEnumerable<T> list)
- 將漚甕真,如果HashSet的是列表(順序並不重要)
hashSet.IsProperSupersetOf(IEnumerable<T> list)
的超集 - 同IsSupersetOf
但爲了此事
也有方法來修改:
hashSet.UnionWith(IEnumerable<T> list)
- 將修改HashSet的遏制在當前散列集或列表中或兩者中均存在的元素 。
hashSet.symmetricExceptWith(IEnumerable<T> list)
- 將修改哈希集以包含僅在當前哈希集或列表中存在的元素,但在兩者中都不存在。
hashSet.IntersectWith(IEnumerable<T> list)
- 將修改hashSet以包含當前散列集和列表中存在的元素 。
有關HashSet
的詳細信息,請參閱MSDN article。
可以使用HashSet<T>
類,它代表了一組,沒有重複的元素,並公開像IntersectWith
,UnionWith
,ExceptWith
等常見的操作集
- 1. C++最適合的數據結構
- 2. C#中這個數組的適當數據結構是什麼?
- 3. C中最流行的通用集合數據結構庫是什麼?
- 4. 什麼數據結構最適合存儲差異
- 5. 什麼數據結構最適合2個相關列表
- 6. JAVA - 最合適的數據結構
- 7. CSV表最合適的數據結構?
- 8. 最合適的數據結構(Python)
- 9. A *什麼是開放集合的最佳數據結構?
- 10. 適合的數據結構
- 11. 合適的數據結構
- 12. 什麼時候是鏈表最好的數據結構使用
- 13. C#集合的一般區別是什麼?底層數據結構是什麼?
- 14. Dijkstra算法實現的最佳數據結構是什麼? C#
- 15. 在Zend Framework中使用數據庫最合適的方式是什麼?
- 16. 什麼數據結構最適合嵌套值和值的計數?
- 17. 什麼是C#中固定深度樹狀數據的最佳數據結構?
- 18. 什麼是結合數據
- 19. 哪種數據結構最適合輸出到數組或對象?爲什麼?
- 20. 在Objective C中使用C結構的優點是什麼?
- 21. Javascript中的C/C++數據結構是什麼?
- 22. 什麼是在android中保存數據的最佳和最合適的方式?
- 23. Apache Spark - 三維數據的最佳數據結構是什麼
- 24. RDBMS中有序列表的最合適的數據結構?
- 25. 什麼類型的應用程序是每個數據結構用於存儲圖形的邊緣最適合?
- 26. 什麼數據結構適合詞典程序?
- 27. 什麼java數據結構應該適合這裏
- 28. 最適合用於鍵值對評估的數據結構
- 29. 什麼Java數據結構/解決方案最適合這些要求?
- 30. 什麼樣的文件夾結構最適合性能?
你是什麼意思「重複在不同的集合」? **(1)**一組可能包含重複項,或**(2)**一組不得包含重複項,但項目可能存在多組。 –
要使用的「最佳」集合完全是上下文相關的。有時'List'最好,有時候是'HashSet',有時'Dictionary'。瞭解他們之間的差異,並決定哪種方式最適合這種情況。 –