문제
해시 세트를 어떻게 변환합니까?u003CT> .NET의 배열로?
해결책
사용 HashSet<T>.CopyTo
방법. 이 메소드는 항목을 복사합니다 HashSet<T>
배열로.
그래서 HashSet<String>
~라고 불리는 stringSet
당신은 다음과 같은 일을 할 것입니다 :
String[] stringArray = new String[stringSet.Count];
stringSet.CopyTo(stringArray);
다른 팁
System.collections.generic.hashset을 의미한다면 프레임 워크 3.5 전에 해당 클래스가 존재하지 않기 때문에 어렵습니다.
당신이 3.5에 있다는 것을 의미한다면, 해시 세트가 ienumerable을 구현하기 때문에 ToArray를 사용합니다.
using System.Linq;
...
HashSet<int> hs = ...
int[] entries = hs.ToArray();
자신의 해시 세트 클래스가 있다면 말하기 어렵습니다.
나는 추측한다
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);
이제 당신은 더 간단하게 할 수 있습니다 List<T>
생성자 (목록은 최신 배열입니다 :). E. G., PowerShell :
$MyNewArray = [System.Collections.Generic.List[string]]::new($MySet)
제휴하지 않습니다 StackOverflow