문제

해시 세트를 어떻게 변환합니까?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)
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top