1

我想更改字典键值的格式。

就像是

Dictionary<string,string> dictcatalogue = new Dictionary<string,string>();

dictCatalogue = dictCatalogue.Select(t => t.Key.ToString().ToLower() + "-ns").ToDictionary();

如何在不影响值的情况下更改字典的键

4

3 回答 3

5

您在创建新字典方面走在了正确的轨道上:

dictcatalogue = dictcatalogue.ToDictionary
       (t => t.Key.ToString().ToLower() + "-ns", t => t.Value);
于 2013-04-30T11:43:32.973 回答
0

我鼓励您将 stuartd 的答案视为正确的解决方案。不过,如果您对通过忽略区分大小写而不创建新字典来使用字典的方式感兴趣,请查看以下代码片段:

class Program
{
    static void Main(string[] args)
    {
        var searchedTerm = "test2-ns";
        Dictionary<string, string> dictCatalogue = 
            new Dictionary<string, string>(StringComparer.InvariantCultureIgnoreCase);
        dictCatalogue.Add("test1", "value1");
        dictCatalogue.Add("Test2", "value2");

        // looking for the key with removed "-ns" suffix
        var value = dictCatalogue[searchedTerm
            .Substring(0, searchedTerm.Length - 3)];

        Console.WriteLine(value);
    }
}

// Output
value2
于 2013-04-30T11:58:35.100 回答
0

您不能更改现有字典条目的键。您必须使用新密钥删除/添加。

你需要做什么?也许我们可以提出一个更好的方法来做到这一点

于 2013-04-30T11:41:38.860 回答