我有一个Dictionary
存储在其中的键值对。我的问题是,在我的字典中,键名的开头有一个空格,因此用于访问该值:
Pair[" Key"];
有没有什么方法可以删除起始空格,所以我可以访问像这样的值
Pair["Key"]
我有一个Dictionary
存储在其中的键值对。我的问题是,在我的字典中,键名的开头有一个空格,因此用于访问该值:
Pair[" Key"];
有没有什么方法可以删除起始空格,所以我可以访问像这样的值
Pair["Key"]
如果您有,则可以使用( MSDNstring
)删除前导和尾随空格。key.Trim()
如果要修剪字典中的所有键,可以这样做:
dictionary = dictionary.ToDictionary(x => x.Key.Trim(), x => x.Value);
但是,如果您有 2 个将修剪为相同值的键,则这有失败的余地。例如,有一个带有键“key”和“key”的字典是有效的,但是如果你将它们全部修剪,你会得到一个,ArgumentException
因为你会尝试两次添加相同的键(“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();
}
}
使用string.Trim方法:
var key = " Key".Trim();
Pair[key];