2012-07-14 133 views
0

我有一个Dictionary,其中存储有一些键值paire。我的问题是,在我的dictornary我在关键名称的开头空格,所以访问值:从字典中删除空格键名

 Pair[" Key"]; 

是否有通过我可以删除起始空格的任何方法,所以我可以访问诸如

 Pair["Key"] 
+1

'string.Trim()'? – 2012-07-14 13:52:45

回答

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

使用值string.Trim方法:如果你有一个string

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

,您可以删除导致与结尾的空白(MSDN)。

如果要修剪在你的字典里所有的按键,你可以这样做:

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

这有失败的空间,不过,如果你有2个键会修剪为相同的值。例如,使用带有“key”和“key”键的字典是有效的,但如果将它们全部修剪掉,则会得到一个ArgumentException,因为您会尝试添加相同的密钥两次(“key”) 。

+0

也可以这样做:dictionary = dictionary.ToDictionary(x => x.Key.Replace(“”,“”),x => x.Value);摆脱字典键中的空白。 – victor 2017-06-26 18:14:23