如何將HashSet <T>轉換爲.NET中的數組?將HashSet <T>轉換爲.NET中的數組
回答
使用HashSet<T>.CopyTo
方法。該方法將HashSet<T>
中的項目複製到數組中。
所以給予HashSet<String>
稱爲stringSet
你會做這樣的事情:
String[] stringArray = new String[stringSet.Count];
stringSet.CopyTo(stringArray);
HashSet.ToArray()更簡單 – 2011-12-09 02:21:17
有沒有ToArray?我似乎無法找到它 – Konstantin 2012-12-19 09:38:55
@Konstantin HashSet
我猜
function T[] ToArray<T>(ICollection<T> collection)
{
T[] result = new T[collection.Count];
int i = 0;
foreach(T val in collection)
{
result[i++] = val;
}
}
爲任何ICollection<T>
實施。
其實事實上,你必須引用System.Core
使用HashSet<T>
類,你還不如用它:
T[] myArray = System.Linq.Enumerable.ToArray(hashSet);
爲什麼在CopyTo時努力工作? – Vitaliy 2009-10-21 21:13:47
因爲它更通用(它適用於任何ICollection
如果你的意思System.Collections.Generic.HashSet,這是一種很難,因爲那類不在框架3.5之前不存在。
如果你的意思是你在3.5,只需使用ToArray的,因爲HashSet的實現IEnumerable,例如
using System.Linq;
...
HashSet<int> hs = ...
int[] entries = hs.ToArray();
如果你有你自己的HashSet類,很難說。
看到這個問題的答案:http://stackoverflow.com/questions/687034/using-hashset-in-c-2-0-compatible-with-3-5從答案 – 2009-10-21 21:24:08
名言:「你可以使用的HashSet
- 1. 在.NET中將數組轉換爲HashSet <T>
- 2. 如何將Java HashSet <Integer>轉換爲基本int數組?
- 3. .NET 4 ISet <> HashSet <>替換NHibernate Iesi.Collections ISet,HashSet?
- 4. 將Json數組轉換爲.Net List wrapper
- 5. 將數組<CustomObject>轉換爲JSON
- 6. 將ActiveX組件轉換爲.NET組件
- 7. 將C#HashSet轉換爲F#集
- 8. 如何將HashSet轉換爲byte []?
- 9. java.util中。<>可以的Hashset不能轉換爲boolean
- 10. 將u8數組的引用轉換爲<Vec<u8>>
- 11. 將數組轉換爲中值數組
- 12. 是否可以將數組轉換爲Realm中的Result <>?
- 13. 的Java oneliner到字符串轉換爲HashSet的<Character>
- 14. 將IEnumerable <IGrouping<,>>轉換爲數組
- 15. 將json轉換爲數組php將數組轉換爲字符串轉換
- 16. 將數組轉換爲數組數組
- 17. 將數組中的類轉換爲JSON
- 18. 將Datatable轉換爲C#中的數組
- 19. 將ObservableCollection轉換爲Silverlight中的數組
- 20. 將數組中的值轉換爲ascii?
- 21. 將json轉換爲jquery中的數組
- 22. 將KML轉換爲PHP中的數組
- 23. 將數組轉換爲Java中的Json
- 24. 將數組中的NSString轉換爲NSDates
- 25. 將Fixnum轉換爲ruby中的數組
- 26. 將數組轉換爲JSON
- 27. 將數組轉換爲LinkedList
- 28. 將數組轉換爲JSON
- 29. 將XML轉換爲數組
- 30. 將CSV轉換爲數組?
'HashSet的'只適用於** .NET 3.5 **。因此,您可以使用'ToArray()'Linq擴展方法。 –
adrianbanks
2009-10-21 21:23:59
@adrianbanks:謝謝。無論如何,我編輯了這個問題以更好地匹配答案。 – 2009-10-21 21:31:59