これが可能かどうかわかりません。 文字列キーと大文字小文字を区別しないハッシュテーブル/辞書を使用しています。
我々は、ユーザーの識別情報が含まれているサードパーティのライブラリを持っている
...ライブラリーとの主な相互作用は、文字列とキーが付いてハッシュテーブルを介して行われ、そしてそのキーのための情報のオブジェクトグラフを返します。 。
問題がある、キーは明らかに大文字と小文字が区別されますが、私たちは必ずしもそうと一致していないユーザーのブラウザから何を得る...私は「
(私たちは、多くの場合、完全にlowercase'dキーを取得します)大文字小文字を区別することが可能かどうか疑問に思っています。
私たちは、この機能を追加するために会社にサポートチケットを提出する可能性がオフのチャンスで
Hashtable ht = new Hashtable();
ht.Add("MyKey", "Details");
string result = ht["MyKey"];
string result = ht["MYKEY"];
string result = ht["mykey"];
、この機能
最後をサポートする他のデータ構造(すなわち、新たなジェネリックコレクション/辞書が)がある、だろうSystem.String GetHashCode()メソッドをオーバーライドして にすることができます。すべての大文字と小文字を区別しない文字列が同じハッシュコードを返すようにします。
new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);
が、シンプルな、私はStringDictionary
が大文字と小文字を区別しないと考えている:私は誰が辞書を持つ任意の提案
脇に:もしあなたが.NET 3.5を使用しているのであれば、おそらくHashtableなどの使用をやめて、代わりにジェネリックコレクションを使い始めるべきです。 –
あなたのコメントをお寄せください:おそらく、すべてのキーで.ToLowerInvariant()を呼び出してください。 –
*スクラッチヘッド*しかし、ハッシュテーブル内のキーはToLowered()ではありません。私。私はインスタンス化されているか、またはdllの内部に埋め込まれた、あらかじめ構築されたハッシュテーブルを与えられています。 HTのキーは大文字と小文字を区別しています...私がdllに持っている唯一のアクセスは、getter/indexerを使ってキーを渡すことです。たとえ私が外に私のキーを置き換えたとしても、その中。 –