으로 변환합니다. 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()가 더 간단합니다. –
ToArray가 있습니까? 찾을 수 없습니다. – Konstantin
@Konstantin HashSet
나는 어떤 ICollection<T>
구현으로
function T[] ToArray<T>(ICollection<T> collection)
{
T[] result = new T[collection.Count];
int i = 0;
foreach(T val in collection)
{
result[i++] = val;
}
}
을 것 같아요.
사실 당신이 HashSet<T>
클래스를 사용하는 System.Core
를 참조해야하기 때문에 사실 당신은뿐만 아니라 그것을 사용할 수 있습니다 : 당신이 System.Collections.Generic.HashSet을 의미하는 경우
T[] myArray = System.Linq.Enumerable.ToArray(hashSet);
CopyTo를 사용하면 왜 열심히 일합니까? – Vitaliy
보다 일반적인 (모든 ICollection
, 그것은 종류의 하드 클래스는 않기 때문이다 프레임 워크 3.5 이전에는 존재하지 않습니다.
3.5 이상이면 HashSet이 IEnumerable을 구현 한 이후 ToArray를 사용하십시오.
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 –
답변에서 인용 : "HashSet을 사용할 수 있습니다.
- 1. xslt : .NET의 param 배열
- 2. VB .Net의 배열
- 3. .net의 vb6 제어 배열?
- 4. HashSet <String>에서 String []
- 5. ArrayList 배열 <String>을 트리 맵에 배열
- 6. SortedSet <T> vs HashSet <T>
- 7. .NET의 배열 헤더 란 무엇입니까
- 8. .net의 다른 배열에서 배열 빼기
- 9. HashSet 이클립스 디버거 변수
- 10. C# 2.0의 HashSet 대체
- 11. Java HashSet <Integer>을 원시 int 배열로 변환하려면 어떻게해야합니까?
- 12. HashSet 조회 복잡성?
- 13. C# 목록으로의 변환 Hashset
- 14. 순서를 유지하는 HashSet
- 15. Hashset 없음 <T, G> for .Net?
- 16. HashSet 가져 오기 <string> 개체 참조
- 17. ISomething의 모든 구현으로 HashSet <T> 채우기
- 18. C++은 문자열 배열 []을 벡터에 복사합니다. <string>
- 19. C#을 보호 배열
- 20. WPF에서 ObservableCollection과 함께 HashSet 사용
- 21. C#을 가변 배열 C#을 마샬링
- 22. 관련 레코드가 HashSet 또는 SortedSet에로드됩니까?
- 23. HashSet, Vector, LinkedList의 최대 크기
- 24. .NET의 대기열 크기 제한 <T>?
- 25. 바보 C#을 배열 질문
- 26. <을 TabControl과 캔버스
- 27. .NET의 스파 스 다차원 배열 또는 행렬 라이브러리
- 28. ... 배열 <Object^>^args
- 29. 벡터. <> vs 배열
- 30. "<"을 "% lt;"로 대체하는 NSXML
'HashSet'은 ** .Net 3.5 **에서만 사용 가능합니다. 따라서, ToArray() Linq 확장 메소드를 사용할 수 있습니다. –
adrianbanks
@adrianbanks : 감사합니다. 어쨌든, 나는 대답을 더 잘 맞추기 위해 질문을 편집했다. –