使用现有的Hashset作为Keys来创建新的字典

Ram*_*mie 3 .net c# dictionary hashset

如果我有一个类型为T的现有Hashset,我将如何创建一个字典;

Dictionary<T, object> tmp = new Dictionary<T, object>();
Run Code Online (Sandbox Code Playgroud)

这可以使用以下代码完成

Hashset<string> hashset = new Hashset<string>()

foreach(var key in hashset)
    tmp[key] = null;
Run Code Online (Sandbox Code Playgroud)

是否有更简单的方法,而不是循环?

spe*_*der 7

是的,通过使用具有键选择器和值选择器参数Enumerable.ToDictionary扩展方法的重载.

var dictionary = hashset.ToDictionary(h => h , h => (object)null);
Run Code Online (Sandbox Code Playgroud)

因为你正在选择null值,所以必须确保它是一个null object(null需要用类型指定),因此是强制转换.