C# 从字典键名称中删除空格

C# 从字典键名称中删除空格,c#,dictionary,C#,Dictionary,我有一本字典,里面有一些键值对。我的问题是,在我的字典中,我在键名的开头有一个空格,因此用于访问值: Pair[" Key"]; 是否有任何方法可以删除起始空格,以便像这样访问值 Pair["Key"] 使用方法: 如果您有一个字符串,则可以使用key.Trim()()删除前导空格和尾随空格 如果要修剪词典中的所有键,可以执行以下操作: dictionary = dictionary.ToDictionary(x => x.Key.Trim(), x =

我有一本
字典
,里面有一些键值对。我的问题是,在我的字典中,我在键名的开头有一个空格,因此用于访问值:

        Pair[" Key"];
是否有任何方法可以删除起始空格,以便像这样访问值

        Pair["Key"]
使用方法:


如果您有一个
字符串
,则可以使用
key.Trim()
()删除前导空格和尾随空格

如果要修剪词典中的所有键,可以执行以下操作:

dictionary = dictionary.ToDictionary(x => x.Key.Trim(), x => x.Value);

但是,如果您有两个将修剪为相同值的键,则这会有失败的空间。例如,字典中有键“key”和“key”是有效的,但是如果你把它们都修剪掉,你会得到一个
参数异常,因为你会尝试添加同一个键两次(“key”)。

修剪你的字符串就足够了。除此之外,您还可以为字典编写自定义键比较器,而不是每次向字典添加或从字典中获取内容时都修剪字符串

Dictionary<string, int> dict = new Dictionary<string, int>(new Comparer());
dict.Add("aa ", 10);
int i = dict[" aa"];

public class Comparer : IEqualityComparer<string>
{
    public bool Equals(string x, string y)
    {
        return x.Trim().Equals(y.Trim());
    }

    public int GetHashCode(string obj)
    {
        return obj.Trim().GetHashCode();
    }
 }
Dictionary dict=newdictionary(newcomparer());
添加(“aa”,第10条);
int i=dict[“aa”];
公共类比较器:IEqualityComparer
{
公共布尔等于(字符串x、字符串y)
{
返回x.Trim().等于(y.Trim());
}
public int GetHashCode(字符串obj)
{
返回obj.Trim().GetHashCode();
}
}

也可以这样做:dictionary=dictionary.ToDictionary(x=>x.Key.Replace(“,”),x=>x.Value);清除字典键中的任何空格。
Dictionary<string, int> dict = new Dictionary<string, int>(new Comparer());
dict.Add("aa ", 10);
int i = dict[" aa"];

public class Comparer : IEqualityComparer<string>
{
    public bool Equals(string x, string y)
    {
        return x.Trim().Equals(y.Trim());
    }

    public int GetHashCode(string obj)
    {
        return obj.Trim().GetHashCode();
    }
 }