我想更改字典键值的格式。
像
这样的东西Dictionary<string,string> dictcatalogue = new Dictionary<string,string>();
dictCatalogue = dictCatalogue.Select(t => t.Key.ToString().ToLower() + "-ns").ToDictionary();
如何在不影响值的情况下更改字典的键
答案 0 :(得分:5)
通过创建新词典,您正走在正确的轨道上:
dictcatalogue = dictcatalogue.ToDictionary
(t => t.Key.ToString().ToLower() + "-ns", t => t.Value);
答案 1 :(得分:0)
您无法更改现有词典条目的键。您必须使用新密钥删除/添加。
你需要做什么?也许我们可以建议一个更好的方法来做到这一点答案 2 :(得分:0)
我鼓励您将斯图尔特的answer视为正确的解决方案。尽管如此,如果您对通过忽略区分大小写并且不创建新词典而使用词典感兴趣,请查看以下代码段:
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