簡體   English   中英

從字典鍵名中刪除空格

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM