私は文字列のリストを持っています。各文字列は、パターン "{Path} \ UpdateTo {Version} - {Order}"に従います。バージョン別文字列リストの並べ替え
リストをソートして、最も低いバージョン番号が先頭になるように並べ替える必要があります。バージョン番号が同じ複数のファイルがある場合は、オプションのorderパラメータが追加されます。順序が文字列のいずれかに存在する場合は、順序番号を持たない同じバージョン番号の文字列の上に表示されます。例えば
、(アイテムがランダムに並べられ注意)以下のリストを与える:
var files = new List<string>() {
@"C:\Migrations\UpdateTo1.2-2",
@"C:\Migrations\UpdateTo1.5-2",
@"C:\Migrations\UpdateTo1.2",
@"C:\Migrations\UpdateTo1.4",
@"C:\Migrations\UpdateTo1.1",
@"C:\Migrations\UpdateTo1.5",
@"C:\Migrations\UpdateTo1.2-1",
@"C:\Migrations\UpdateTo1.5-1"
};
を結果は次のようになります。
var files = new List<string>() {
@"C:\Migrations\UpdateTo1.1",
@"C:\Migrations\UpdateTo1.2-1",
@"C:\Migrations\UpdateTo1.2-2",
@"C:\Migrations\UpdateTo1.2",
@"C:\Migrations\UpdateTo1.4",
@"C:\Migrations\UpdateTo1.5-1",
@"C:\Migrations\UpdateTo1.5-2",
@"C:\Migrations\UpdateTo1.5"
}
私はアイデアのすべての種類にしようとしてきたが、これまでの私の試みは完全な混乱でした。誰かが助けてくれたら、私はそれを感謝します。おかげ
をあなたが試したものの例を与えることができますか? –
あなたのバージョンが9、.9以上にならない限り、アルファベット順のソートを使うこともできます。そうしないと、単純なコンパイラを書く必要があります。 – dtech
パスが混在していると思われますか? –