当前位置:  开发笔记 > 编程语言 > 正文

将IDictionary <string,string>键转换为小写(C#)

如何解决《将IDictionary<string,string>键转换为小写(C#)》经验,为你挑选了1个好方法。

我有一个获取IDictionary作为参数的方法.现在我想提供一个从这个字典中检索值的方法,但它应该是case-invariant.

所以我现在的解决方案就是有一个静态函数循环遍历键并将它们转换为下面这样的:

private static IDictionary> ConvertKeysToLowerCase(
    IDictionary> dictionaries)
{
    IDictionary> resultingConvertedDictionaries 
        = new Dictionary>();
    foreach(ILanguage keyLanguage in dictionaries.Keys)
    {
        IDictionary convertedDictionatry = new Dictionary();
        foreach(string key in dictionaries[keyLanguage].Keys)
        {
            convertedDictionatry.Add(key.ToLower(), dictionaries[keyLanguage][key]);
        }
        resultingConvertedDictionaries.Add(keyLanguage, convertedDictionatry);
    }
    return resultingConvertedDictionaries;
}

现在,这没关系,但仍然是一大堆代码与我的"干净和高效"的想法相矛盾.你知道任何替代方法,以便字典的.ContainsKey()方法不区分套管吗?



1> Jon Skeet..:

是 - 传递Dictionary构造函数StringComparer.OrdinalIgnoreCase(或另一个忽略大小写的比较器,具体取决于您的文化敏感性需求).

乔恩

推荐阅读
wurtjq
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有