[英]Removing blank space from the dictionary key name
我有一個Dictionary
,其中存儲了一些鍵值對。 我的問題是在字典中,鍵名的開頭有一個空格,因此用於訪問值:
Pair[" Key"];
有什么方法可以刪除起始空格,因此我可以像訪問值一樣
Pair["Key"]
如果有string
,則可以使用key.Trim()
( MSDN )刪除前導和尾隨空格。
如果要修剪字典中的所有鍵,可以執行以下操作:
dictionary = dictionary.ToDictionary(x => x.Key.Trim(), x => x.Value);
但是,如果您有2個將調整為相同值的鍵,則有失敗的余地。 例如,擁有包含鍵“ key”和“ key”的字典是有效的,但是如果將它們全部修剪,則會收到ArgumentException
因為您將嘗試兩次添加相同的鍵(“鍵”) 。
修剪字符串就足夠了。 除此之外,您還可以為字典編寫自定義鍵比較器,而不用每次在字典中添加內容或從字典中獲取內容時都修剪字符串。
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];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.