我有一个Dictionary
,其中存储了一些键值值。我的问题是,在我的dictornary中,我在键名的开头有一个空格,所以访问该值:
Pair[" Key"];
是否有任何方法可以删除起始空格,因此我可以访问值
Pair["Key"]
答案 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];