1

Dictionaryキーと値のペアが格納されているがあります。私の問題は、私の独裁者では、キー名の先頭に空白があるので、値にアクセスするために:

        Pair[" Key"];

開始空白を削除して、次のような値にアクセスできる方法はありますか?

        Pair["Key"]
4

3 に答える 3

8

がある場合は、(MSDNstring )を使用して先頭と末尾の空白を削除できます。key.Trim()

辞書内のすべてのキーをトリミングする場合は、次のように実行できます。

dictionary = dictionary.ToDictionary(x => x.Key.Trim(), x => x.Value);

ただし、同じ値にトリミングされる2つのキーがある場合、これには失敗の余地があります。たとえば、キー「key」と「key」を含む辞書があることは有効ですが、それらをすべてトリミングするArgumentExceptionと、同じキー( "key")を2回追加しようとするため、が得られます。

于 2012-07-14T13:53:15.997 に答える
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();
    }
 }
于 2012-07-14T14:06:23.877 に答える
1

string.Trimメソッドを使用します。

var key = " Key".Trim();
Pair[key];
于 2012-07-14T13:52:42.100 に答える