String.CompareTo のデフォルトの並べ替え順序をバイト単位の順序に設定できる戦略を探しています。メソッドの呼び出しでソート順を指定せずにこれを行う必要があります。
いくつかの戦略を試しましたが、満足のいく結果は得られませんでした。私はこれまでに得ました:
CultureAndRegionInfoBuilder crib =
new CultureAndRegionInfoBuilder("foo", CultureAndRegionModifiers.Neutral);
CompareInfo compareInfo = new CustomCompareInfo();
crib.Register();
この CustomCompareInfo で、デフォルトの CompareInfo クラスをオーバーライドしようとしましたが、残念ながらこれはコンパイルされません。
The type 'System.Globalization.CompareInfo' has no constructors defined
私はここで立ち往生しています。CompareInfo のカスタム実装が私の問題の解決策であると感じました。
これについて何かアイデアはありますか?
編集:私の質問の文脈:
私が取り組んでいるこのプロジェクトは非常に珍しいものです。巨大なコードベースが他のプログラミング言語から .NET に変換されています。このプログラミング言語では、文字列比較のデフォルトは序数であり、この .NET との違いにより、変換されたコードベースでバグが発生しているため、.NET を同じデフォルトの動作に構成できれば、最も洗練されたソリューションになると考えました。
もちろん、比較指定子を使用してコードを再変換することは可能です。または、序数 (バイナリ) 比較を実行する拡張メソッドを導入することもできます。などなど..
ただし、私に関する限り、アーキテクチャの観点から見ると、これらのソリューションは洗練されていません。これが、フレームワークでこの序数比較をグローバルに設定できるソリューションを探している理由です。
前もって感謝します!