ホームページ >バックエンド開発 >C++ >LINQ を使用して英数字文字列を数値接尾辞で並べ替えるにはどうすればよいですか?

LINQ を使用して英数字文字列を数値接尾辞で並べ替えるにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-27 14:19:09163ブラウズ

How Can LINQ Be Used to Sort Alphanumeric Strings by Their Numeric Suffixes?

LINQ を使用した英数字の並べ替え

LINQ を使用して、各要素が数値で終わる文字列配列を並べ替えようとする場合、既定の並べ替え動作を理解することが重要です。デフォルトでは、文字列は ASCII 値に基づいて辞書順に並べられます。したがって、OrderBy を使用した並べ替えでは文字列全体が考慮され、アルファベットが優先される予期しない順序付けが行われます。

この問題を修正し、数値に基づいて正確な順序付けを実現するには、数値をパディングする必要があります。ソートキーの部分。正規表現を使用するカスタム PadNumbers メソッドを作成すると、数値部分にゼロが埋め込まれ、比較用に一貫した長さになるようにします。このパディング手法により、LINQ の OrderBy が数値部分を正しく比較し、目的の順序付けが可能になります。

提供されたコード サンプルでは、​​PadNumbers メソッドがpartNumbers 配列内の各文字列に適用され、パディングされた値が使用されます。をソートキーとして使用します。このアプローチでは、元の文字列は変更されませんが、正確な数値比較のためにパディングされた値を利用します。

数値が定義されたパディング長を超えるシナリオを考慮することが重要です。このような場合、デフォルトの辞書編集順序がオーバーフロー部分に適用され、望ましい順序が提供されない可能性があります。

以上がLINQ を使用して英数字文字列を数値接尾辞で並べ替えるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。