C#: Словарь оценивает hashset преобразованию

Предложите самый короткий способ преобразовать Dictionary<Key, Value> кому: Hashset<Value>

Есть ли встроенный ToHashset () расширение LINQ для IEnumerables?

Заранее спасибо!

8
задан Andrew Florko 5 July 2010 в 13:58
поделиться

2 ответа

var yourSet = new HashSet<TValue>(yourDictionary.Values);

Или, если хотите, вы можете создать свой собственный простой метод расширения для обработки вывода типа. Тогда вам не нужно явно указывать T для HashSet :

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);
    }
}
13
ответ дан 5 December 2019 в 09:24
поделиться

new HashSet(YourDict.Values);

5
ответ дан 5 December 2019 в 09:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: