Wie konvertiere ich ein HashSet <T> zu einem Array in .NET?Konvertieren Sie ein HashSet <T> zu einem Array in .NET
Antwort
Verwenden Sie die HashSet<T>.CopyTo
Methode. Diese Methode kopiert die Elemente von HashSet<T>
in ein Array.
So ein gerufener HashSet<String>
gegeben stringSet
Sie würde so etwas wie tun:
String[] stringArray = new String[stringSet.Count];
stringSet.CopyTo(stringArray);
HashSet.ToArray() ist einfacher –
Gibt es ein ToArray? Ich kann es nicht finden – Konstantin
@Konstantin HashSet
Ich denke,
function T[] ToArray<T>(ICollection<T> collection)
{
T[] result = new T[collection.Count];
int i = 0;
foreach(T val in collection)
{
result[i++] = val;
}
}
wie für jede ICollection<T>
Umsetzung.
Eigentlich in der Tat, wie Sie System.Core
verweisen muss die HashSet<T>
Klasse zu verwenden, wie gut Sie können es verwenden:
T[] myArray = System.Linq.Enumerable.ToArray(hashSet);
Warum hart arbeiten, wenn Sie CopyTo haben? – Vitaliy
Da es generischer ist (es gilt für jede ICollection
Wenn Sie System.Collections.Generic.HashSet meine, es ist ziemlich schwer, da diese Klasse tut existiert nicht vor Rahmen 3.5.
Wenn Sie meinen, dass Sie auf 3.5 sind, verwenden Sie einfach ToArray, da HashSet IEnumerable implementiert, z.
using System.Linq;
...
HashSet<int> hs = ...
int[] entries = hs.ToArray();
Wenn Sie Ihre eigene HashSet-Klasse haben, ist es schwer zu sagen.
Siehe die Antwort auf diese Frage: http://stackoverflow.com/questions/687034/using-hashset-in-c-2-0-compatible-with-3-5 –
Zitat aus dieser Antwort: "Sie können HashSet verwenden
- 1. Wie kann ich ein Java HashSet <Integer> in ein primitives int-Array konvertieren?
- 2. Wählen Sie ein Element nach Index von einem .NET HashSet
- 3. Kann nicht konvertieren HashSet zu IReadOnlyCollection
- 4. Konvertieren Array zu einem Objekt In PHP
- 5. Konvertieren Array von Zeichenfolgen zu Liste <string>
- 6. Wie konvertiert man die Liste <T> zu HashSet <T> in C#?
- 7. Wie zwei Arrays zu einem Schlüssel-Wert-Paar konvertieren und fügen Sie sie in ein Array
- 8. Aufruf Distinct <>() auf HashSet <T>
- 9. Konvertieren einer Set <Integer> auf eine primitive Array
- 10. So konvertieren Sie ein Wörterbuch in ein Array
- 11. Wie benutze ich CMake Generator Ausdruck $ <TARGET_FILE: tgt>?
- 12. IndexOutOfRangeException beim Hinzufügen zu Hashset <T>
- 13. wie AVI-Datei zu einem JPG-Bilder-Array mit .net
- 14. PHP Konvertieren Sie mehrere Texteingabe zu einem mehrdimensionalen Array
- 15. Wo hat HashSet <T> in VS2012 gehen?
- 16. Konvertieren Sie ein 1X9-Array in ein 9X1
- 17. Kopieren Sie ein 2D-Array zu einem anderen 2D-Array
- 18. ein Array zu einem ObservableCollection
- 19. konvertieren ein django queryset in ein Array
- 20. Konvertieren Sie eine BindingList <T> in ein Array von T
- 21. C#: Konvertieren Sie Byte-Array in einem Schwimmer
- 22. konvertieren Sie ein Byte-Array in einen bestimmten Index (Flex)
- 23. Konvertieren Array zu JSON
- 24. Konvertieren Sie eine Reihe von Typedefs in ein Char-Array
- 25. Hinzufügen eines Elements zu einem HashSet in einer HashMap Java
- 26. Gibt es eine Möglichkeit, ein Array in Klasseneigenschaften zu konvertieren?
- 27. PHP-Array zu jQuery-Array innerhalb <<< EOT
- 28. Konvertieren Array zu JSON
- 29. Erhalten Sie ein Array von String aus einem gezackten Array
- 30. Konvertieren von ArrayList zu Array in Java
'HashSet' ist nur in **. Net 3.5 ** verfügbar. Daher können Sie die 'ToArray()' Linq-Erweiterungsmethode verwenden. –
adrianbanks
@adrianbanks: Danke. Wie auch immer, ich habe die Frage so bearbeitet, dass sie den Antworten besser entspricht. –