前提・実現したいこと
string[] texts = new string[] { "abc", "defg", "b", "stuv", "ef", };
の要素をコンソールで表示するとき、
vuts,fe,gfed,b,cba
と
vuts, gfed, fe, cba,b
に並び替えて出力する方法を教えてください。
以下は問題文です。
次の文字列の配列を降順に並べ替える。
string[] texts = new string[] { "abc", "defg", "b", "stuv", "ef", };
(降順の結果)stuv,ef,defg,b,abc
更に、個々の中身までひっくり返してみる。(stringクラスにReverse()メソッドがあり、string(char[]value)コンストラクターがある。)
パターン1並び替えてから文字列反転
vuts,fe,gfed,b,cba
パターン2文字列を反転させてから並び替え
vuts, gfed, fe, cba,b
発生している問題・エラーメッセージ
なし
該当のソースコード
C#ソースコード using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Q10 { class Q10 { static void Main(string[] args) { string[] texts = new string[] { "abc", "defg", "b", "stuv", "ef", }; Console.WriteLine(string.Join(", ", texts.OrderByDescending(x => x))); } } }
試したこと
stuv,ef,defg,b,abc
に並び替えるところまでは出来たのですが、そこからまた並び替える方法がわかりません。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
特に順番に意味があるようには見えないので、ソートするのではなく、要素を指定して入れ替えるのが早いのでは?
もしかして、全てのパターンを列挙したいってことですか?
順列や組み合わせでのパターン数ではなく、{ {A,B,C}, {B,C,A}, {A,C,B} ... } という感じですべてのパターンを総当たりとかみたいにやりたいってことですか?
指定の文字列を反転させたいのですか?
ご連絡ありがとうございます。
重要な部分を書き忘れていました。申し訳ございません。
問題文は
次の文字列の配列を降順に並べ替える。
string[] texts = new string[] { "abc", "defg", "b", "stuv", "ef", };
(降順の結果)stuv,ef,defg,b,abc
更に、個々の中身までひっくり返してみる。(stringクラスにReverse()メソッドがあり、string(char[]value)コンストラクターがある。)
パターン1並び替えてから文字列反転
vuts,fe,gfed,b,cba
パターン2文字列を反転させてから並び替え
vuts, gfed, fe, cba,b
質問本文に書いてください。この修正依頼の欄は修正依頼のためのものです。
質問は編集できるので編集しましょう。
承知しました。
質問を修正します。
お待たせしました。
質問を編集いたしました。
パターン1,2とありますが、二種類やれ的なものですか?
それとも単純に『こんな方法もあるから』っていう提示でしょうか。
説明不足で申し訳ございません。
二種類行うものです。
文字列を反転させる方法はそこに書いてありますが、何がわからないんでしょう?
ご連絡ありがとうございます。
Reverse()メソッドを使っても出力結果がvuts,fe,gfed,b,cbaにならないのでわからなくなってしまいました。
何といいますか、動きそうなコードやメソッドを継ぎはぎして要望通りの結果を求めるのではなく、ひとつひとつ理解して順番に片付けていかないとダメです。
回答1件
あなたの回答
tips
プレビュー