Warum gibt es eine Distinct() Methode, die auf dem HashSet verfügbar ist, obwohl sie keine Duplikate enthalten kann?Warum haben C# HashSets eine Distinct() Methode?
6
A
Antwort
13
Distinct
Die Methode ist nicht auf die HashSet<>
, aber die IEnumerable<>
, die von der HashSet<>
implementiert ist.
Erweiterungsmethoden können bei bestimmten Typen nicht "weggelassen" werden. Nach dem Hinzufügen zu einem Typ erhalten alle diesen Typ und alle abgeleiteten Typen die Erweiterungsmethode.
Nur um zu demonstrieren, wenn Sie object
erweitert haben, würden Sie alles einstreuen, wenn Sie den relevanten Namespace hinzugefügt haben. So Zugabe nicht gehen:
namespace System
{
public static class ObjectExtensions
{
public static void Garbage(this object foo)
{
}
}
}
Verwandte Themen
- 1. C# Linq führen Methode über Ergebnisse von Distinct() -Methode
- 2. linq to Entities distinct Methode
- 3. Speichereffizienz beim Löschen eines HashSets vs. Erstellen eines neuen HashSets
- 4. HashSets abziehen (und eine Kopie zurückgeben)?
- 5. Probleme mit hashsets in Java
- 6. Vergleichen Sie zwei Hashsets?
- 7. C# Groupby Distinct
- 8. C# LINQ Zählelemente mit DISTINCT
- 9. Wie verwende ich Hashtables/HashSets in .NET?
- 10. Warum gibt Enumerable.Except DISTINCT-Elemente zurück?
- 11. Warum haben C++ - Compiler obskure Fehlermeldungen
- 12. Haben wir eine "Contains" -Methode in IEnumerable
- 13. Java Subclasses haben eine repeative Methode
- 14. Warum haben wir eine unveränderliche leere Karte?
- 15. Machen Sie eine Dropdownlist Distinct
- 16. Warum haben wir zwei Arten von Bibliotheken in C/C++?
- 17. Warum muss eine Methode in einer C++ - Klassendefinition deklariert werden?
- 18. Warum haben seine Parameter der WCF-Service-Methode nicht
- 19. Warum benötigt diese SQL-Abfrage DISTINCT?
- 20. Erweiterungsmethode für eine Methode C#
- 21. Warum funktioniert das nicht auf S4-Objekten, die eine as.list.default-Methode haben?
- 22. Warum haben Listen eine __reverse __() spezielle Methode, aber Tupel nicht in Python?
- 23. Warum haben konfigurierbare Magento-Produkte eine SKU
- 24. Warum haben Finalizer eine "strenge Leistungseinbuße"?
- 25. Warum eine explizite Schnittstellenmemberimplementierung, haben keinen Modifikator
- 26. Warum haben Texteingaben eine zusätzliche Auffüllung?
- 27. Warum haben einige Websites eine 'img.' Seite? ˅?
- 28. Warum gibt "SELECT DISTINCT a, b FROM ..." weniger Datensätze zurück als "SELECT DISTINCT A + '|' + B VON ... "?
- 29. Warum haben die parallelen Sequenzen von scala keine contains-Methode?
- 30. Warum scheint diese Java-Methode zwei Rückgabetypen zu haben?
Um zu klären 'Distinct' ist eine Erweiterung Methode' IEnumerable ', die' HashSet 'zu implementieren geschieht. –
bluevector
@jonnyGold Ja, ich habe festgestellt, dass ich meine Antwort vor dem Kommentar bearbeitet habe. Danke für die Aufklärung trotzdem. –
Um noch präziser zu sein, ist 'Distinct' eine Erweiterungsmethode, die 'IEnumerable <>' erweitert und sich in der statischen Klasse 'System.Linq.Enumerable' befindet. –