从字典键名称中删除空格

时间:2012-07-14 13:50:57

标签: c# dictionary

我有一个Dictionary,其中存储了一些键值值。我的问题是,在我的dictornary中,我在键名的开头有一个空格,所以访问该值:

        Pair[" Key"];

是否有任何方法可以删除起始空格,因此我可以访问值

        Pair["Key"]

3 个答案:

答案 0 :(得分:7)

如果您有string,则可以使用key.Trim()MSDN)删除前导空格和尾随空格。

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

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

但是,如果您有2个键可以修剪到相同的值,则会有失败的余地。例如,有一个带有“key”和“key”键的字典是有效的,但是如果你修剪它们,你将获得ArgumentException,因为你试图两次添加相同的密钥( “密钥”)。

答案 1 :(得分:2)

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

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();
    }
 }

答案 2 :(得分:1)

使用string.Trim方法:

var key = " Key".Trim();
Pair[key];