使用LINQ将资源集转换为字典

14
var rm = new ResourceManager(sometype);

var resourceSet = rm.GetResourceSet(CultureInfo.CurrentUICulture, true, true);

我想将上述资源集转换为字典。目前我通过以下手动循环来执行。

var resourceDictionary = new Dictionary<string, string>();

foreach (var r in resourceSet)
{
  var dicEntry = (DictionaryEntry)r;
  resourceDictionary.Add(dicEntry.Key.ToString(), dicEntry.Value.ToString());          
}

我该如何使用LINQ轻松实现这个目标?

2个回答

40

尝试这样做:

var resourceDictionary = resourceSet.Cast<DictionaryEntry>()
                                    .ToDictionary(r => r.Key.ToString(),
                                                  r => r.Value.ToString());

1
完全忘记了这个 Cast<>() 方法! - superjos

3
var resourceDictionary = resourceSet.Select(r => (DictionaryEntry) r)
                                     .ToDictionary(dicEntry => dicEntry.Key.ToString(),
                                                dicEntry => dicEntry.Value.ToString());

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接