Tig*_*ine 5 .net c# idictionary
我有一个获取IDictionary作为参数的方法.现在我想提供一个从这个字典中检索值的方法,但它应该是case-invariant.
所以我现在的解决方案就是有一个静态函数循环遍历键并将它们转换为下面这样的:
private static IDictionary<ILanguage, IDictionary<string, string>> ConvertKeysToLowerCase(
IDictionary<ILanguage, IDictionary<string, string>> dictionaries)
{
IDictionary<ILanguage, IDictionary<string, string>> resultingConvertedDictionaries
= new Dictionary<ILanguage, IDictionary<string, string>>();
foreach(ILanguage keyLanguage in dictionaries.Keys)
{
IDictionary<string, string> convertedDictionatry = new Dictionary<string, string>();
foreach(string key in dictionaries[keyLanguage].Keys)
{
convertedDictionatry.Add(key.ToLower(), dictionaries[keyLanguage][key]);
}
resultingConvertedDictionaries.Add(keyLanguage, convertedDictionatry);
}
return resultingConvertedDictionaries;
}
Run Code Online (Sandbox Code Playgroud)
现在,这没关系,但仍然是一大堆代码与我的"干净和高效"的想法相矛盾.你知道任何替代方法,以便字典的.ContainsKey()方法不区分套管吗?
| 归档时间: |
|
| 查看次数: |
11225 次 |
| 最近记录: |