文字列の最初の文字を取得する必要がある C# メソッドがあり、特定の Unicode 文字 (すべて右から左の文字) を含む HashSet に存在するかどうかを確認します。
だから私はやっている
var c = str[0];
次に、ハッシュセットを確認します。
問題は、最初の char のコード ポイントが 65535 より大きい文字列に対して、このコードが機能しないことです。
実際に、0 から 70,000 までのすべての数値を通過するループを作成し (最高の RTL コード ポイントは約 68,000 であるため、切り上げました)、数値からバイト配列を作成し、
Encoding.UTF32.GetString(intValue);
この文字で文字列を作成します。次に、HashSet を検索するメソッドにそれを渡しますが、そのメソッドは失敗します。
str[0]
その値は決してあるべきものではありません。
私は何を間違っていますか?