, Dictionary<Key, Value>
C: Sözlük değerler dönüşüm HashSet için
Hashset<Value>
dönüştürmek kısa yoldan var mı önerin yerleşik IEnumerables için ToHashset() LINQ uzantısı?
Teşekkürler!
, Dictionary<Key, Value>
C: Sözlük değerler dönüşüm HashSet için
Hashset<Value>
dönüştürmek kısa yoldan var mı önerin yerleşik IEnumerables için ToHashset() LINQ uzantısı?
Teşekkürler!
var yourSet = new HashSet<TValue>(yourDictionary.Values);
Veya isterseniz, tür çıkarımı işlemek için kendi basit uzantı yöntemini çalabilirsiniz.
var yourSet = yourDictionary.Values.ToHashSet();
// ...
public static class EnumerableExtensions
{
public static HashSet<T> ToHashSet<T>(this IEnumerable<T> source)
{
return source.ToHashSet<T>(null);
}
public static HashSet<T> ToHashSet<T>(
this IEnumerable<T> source, IEqualityComparer<T> comparer)
{
if (source == null) throw new ArgumentNullException("source");
return new HashSet<T>(source, comparer);
}
}
new HashSet<Value>(YourDict.Values);
Bu soruyu ve cevabı bana mantıklı değildir: O zaman açıkça koleksiyonu olarak düşünülmelidir. Tüm değerleri bir Sözlük'ten almak ve onları bir HashSet'e atamak mantıklı değil. –
HashSet<T>
aitT
belirtmek gerekmez. MSDN'ye göre, bir HashSet yinelenen öğeler içeremez ve değerler olmadan bir SözlükNe yazık ki bir KeyCollection nesnesi, ne kadar istediğime rağmen HashSet nesnesiyle aynı değil. – Paul
Bu sorunun 5 yaşında olduğunu aklınızda bulundurun; @ChristopherPainter ile aynı fikirdeyim. Amaç ne? Teklik söz konusu olduğunda (bu sorunun cevabı değil de) çok daha anlamlı olan şey ise: “yeni HashSet (myDictionary.Keys)”. –
Heliac