HashSet<T> を .NET の配列に変換するにはどうすればよいですか?
38410 次
4 に答える
60
メソッドを使用しHashSet<T>.CopyTo
ます。HashSet<T>
このメソッドは、アイテムを から配列にコピーします。
したがって、HashSet<String>
呼び出されたstringSet
場合、次のようにします。
String[] stringArray = new String[stringSet.Count];
stringSet.CopyTo(stringArray);
于 2009-10-21T21:08:02.593 に答える
29
System.Collections.Generic.HashSet を意味する場合、そのクラスはフレームワーク 3.5 より前に存在しないため、ちょっと難しいです。
3.5 を使用している場合は、HashSet が IEnumerable を実装しているため、ToArray を使用してください。
using System.Linq;
...
HashSet<int> hs = ...
int[] entries = hs.ToArray();
独自の HashSet クラスがある場合、それを言うのは困難です。
于 2009-10-21T21:21:49.463 に答える
0
私は推測する
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);
于 2009-10-21T21:11:33.673 に答える