LINQ を使用して、各要素が数値で終わる文字列配列を並べ替えようとする場合、既定の並べ替え動作を理解することが重要です。デフォルトでは、文字列は ASCII 値に基づいて辞書順に並べられます。したがって、OrderBy を使用した並べ替えでは文字列全体が考慮され、アルファベットが優先される予期しない順序付けが行われます。
この問題を修正し、数値に基づいて正確な順序付けを実現するには、数値をパディングする必要があります。ソートキーの部分。正規表現を使用するカスタム PadNumbers メソッドを作成すると、数値部分にゼロが埋め込まれ、比較用に一貫した長さになるようにします。このパディング手法により、LINQ の OrderBy が数値部分を正しく比較し、目的の順序付けが可能になります。
提供されたコード サンプルでは、PadNumbers メソッドがpartNumbers 配列内の各文字列に適用され、パディングされた値が使用されます。をソートキーとして使用します。このアプローチでは、元の文字列は変更されませんが、正確な数値比較のためにパディングされた値を利用します。
数値が定義されたパディング長を超えるシナリオを考慮することが重要です。このような場合、デフォルトの辞書編集順序がオーバーフロー部分に適用され、望ましい順序が提供されない可能性があります。
以上がLINQ を使用して英数字文字列を数値接尾辞で並べ替えるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。