多くの列で並べ替えたいリストがあります。たとえば、string[] には 5 つの要素 (5 列) があり、List には 10 の要素 (10 行) があります。たとえば、1 列目、3 列目、4 列目で並べ替えを開始したいとします。
C# で最も簡単な方法で行うにはどうすればよいでしょうか?
私はそのようなアルゴリズムについて考えました:
- 並べ替えに使用したくない列に対応する値を削除します
- 残っている列のそれぞれについて、その値を格納するために使用できる最長の文字列を見つけます
- 各行を文字列に変更します。各セルは、指定された列の値の最大文字数と同じ数の文字を占有します
- これらの文字列値のそれぞれにインデックスを使用して int を割り当てます
- これらの文字列値を並べ替えます
- すでにソートされたインデックスを使用して、実際のデータをソートします
しかし、このアルゴリズムは非常に悪いと思います。可能であれば、C# と .NET の既存の機能を使用するより良い方法を教えてください。