2012-07-14 87 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