Dengan daftar yang dapat Anda lakukan:
list.AddRange(otherCollection);
Tidak ada metode rentang tambah di HashSet . Apa cara terbaik untuk menambahkan koleksi lain ke HashSet?
Dengan daftar yang dapat Anda lakukan:
list.AddRange(otherCollection);
Tidak ada metode rentang tambah di HashSet . Apa cara terbaik untuk menambahkan koleksi lain ke HashSet?
Jawaban:
Sebab HashSet<T>
, namanya UnionWith
.
Ini untuk menunjukkan cara HashSet
kerja yang berbeda. Anda tidak dapat dengan aman Add
satu set elemen acak seperti di dalamnya Collections
, beberapa elemen mungkin secara alami menguap.
Saya pikir itu UnionWith
mengambil namanya setelah "bergabung dengan yang lain HashSet
", namun, ada kelebihan IEnumerable<T>
juga.
Ini satu cara:
public static class Extensions
{
public static bool AddRange<T>(this HashSet<T> source, IEnumerable<T> items)
{
bool allAdded = true;
foreach (T item in items)
{
allAdded &= source.Add(item);
}
return allAdded;
}
}
HashSet
(danISet
) dibuat dengan istilah yang ditetapkan secara matematis.UnionWith
adalah istilah yang lebih dekat. KecualiExcept
, yang jelas harus dinamaiSubtract
, secara matematis.