Sie System.Collections.Generic.HashSet<T>
verwenden sollten, Sie können schaffen es mag:
var hashSet = new HashSet<T>(IEnumerable<T>)
und dann Methoden vergleichen:
hashSet.SetEquals(IEnumerable<T> list)
- gibt true zurück, wenn Hashset und Liste gleiche Elemente enthält
hashSet.Overlaps(IEnumerable<T> list)
- gibt true zurück, wenn Hashset eines der Elemente aus der Liste enthält
hashSet.IsSubsetOf(IEnumerable<T> list)
- gibt true zurück, wenn Hashset Teilmenge der Liste ist (Reihenfolge ist nicht wichtig)
hashSet.IsProperSubsetOf(IEnumerable<T> list)
- wie IsSubsetOf
aber um Materie
hashSet.IsSupersetOf(IEnumerable<T> list)
- wird ret Urne wahr, wenn Hashset Obermenge der Liste (Reihenfolge keine Rolle spielen) ist
hashSet.IsProperSupersetOf(IEnumerable<T> list)
- wie IsSupersetOf
aber um Materie
Auch gibt es Methoden zu ändern:
hashSet.UnionWith(IEnumerable<T> list)
- wird Hashset ändern enthalten Elemente, die in aktuellen HashSet oder Liste oder in beiden vorhanden sind.
hashSet.symmetricExceptWith(IEnumerable<T> list)
- modifiziert hashSet, um Elemente zu enthalten, die nur im aktuellen HashSet oder in der Liste existieren, aber nicht in beiden.
hashSet.IntersectWith(IEnumerable<T> list)
- wird HashSet ändern, um Elemente zu enthalten, die in aktuellen HashSet und Liste vorhanden sind.
Für weitere Informationen über HashSet
siehe MSDN article.
Was meinen Sie mit "Wiederholung in verschiedenen Sätzen"? ** (1) ** Ein Satz kann Duplikate enthalten, oder ** (2) ** Ein Satz darf keine Duplikate enthalten, aber Gegenstände können in mehreren Sätzen vorhanden sein. –
Die "beste" Sammlung ist vollständig kontextabhängig. Manchmal ist 'List' am besten, manchmal' HashSet', manchmal 'Dictionary'. Lerne die Unterschiede zwischen ihnen und entscheide, was für diese Situation am besten ist. –