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")を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();
}
}
string.Trimメソッドを使用します。
var key = " Key".Trim();
Pair[key];