从字典中删除空格键名
问题描述:
我有一个Dictionary
,其中存储有一些键值paire。我的问题是,在我的dictornary我在关键名称的开头空格,所以访问值:从字典中删除空格键名
Pair[" Key"];
是否有通过我可以删除起始空格的任何方法,所以我可以访问诸如
Pair["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();
}
}
答
,您可以删除导致与结尾的空白(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
'string.Trim()'? – 2012-07-14 13:52:45