C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[4]: C#2005を2003などで


(過去ログ 55 を表示中)

[トピック内 9 記事 (1 - 9 表示)]  << 0 >>

■30928 / inTopicNo.1)  C#2005を2003などで
  
□投稿者/ dopeboy (1回)-(2009/01/09(Fri) 14:57:36)

分類:[.NET 全般] 

はじめまして。
まだまだC#2005の初心者なのですが質問です。

C#2005でソートをするときに

引用返信 編集キー/
■30930 / inTopicNo.2)  Re[1]: C#2005を2003などで
□投稿者/ dopeboy (3回)-(2009/01/09(Fri) 15:04:22)
すみません。
間違ってEnter押して投稿してしまいました。。

続きです。


C#2005でソートをするときに

List<string> dope = new List<string>(richTextBox1.Lines);

dope.Sort();

richTextBox1.Text = string.Join(Environment.NewLine, dope.ToArray());

のようになっている場合VisualStudio 2003ではどのように記述すればよいのでしょうか?

List<>がないと思うのでわかりません。

ご指導よろしくお願いします。
引用返信 編集キー/
■30932 / inTopicNo.3)  Re[2]: C#2005を2003などで
□投稿者/ επιστημη (1500回)-(2009/01/09(Fri) 15:21:02)
επιστημη さんの Web サイト
2008で動作確認したけど2003では未検証

            ArrayList dope = new ArrayList(richTextBox1.Lines);
            dope.Sort();
            object[] sorted = dope.ToArray();
            string[] result = new string[sorted.Length];
            for ( int i = 0; i < sorted.Length; ++i ) {
              result[i] = sorted[i].ToString();
            }
            richTextBox1.Text = string.Join(Environment.NewLine, result);

引用返信 編集キー/
■30935 / inTopicNo.4)  Re[3]: C#2005を2003などで
□投稿者/ みきぬ (327回)-(2009/01/09(Fri) 15:54:05)
Visual Studio 2003 で確認済み。

string[] lines = richTextBox1.Lines;
Array.Sort(lines);

richTextBox1.Lines = lines;
//richTextBox1.Text = string.Join(System.Environment.NewLine, lines);

引用返信 編集キー/
■30936 / inTopicNo.5)  Re[2]: C#2005を2003などで
□投稿者/ よねKEN (248回)-(2009/01/09(Fri) 15:54:33)
> C#2005でソートをするときに
>
> List<string> dope = new List<string>(richTextBox1.Lines);
>
> dope.Sort();
>
> richTextBox1.Text = string.Join(Environment.NewLine, dope.ToArray());
>
> のようになっている場合VisualStudio 2003ではどのように記述すればよいのでしょうか?

元のコードに沿っていないのだけど、単純に以下のようにしてはいかがでしょう?
(C#2008でしか試してませんが、C#2003でも2005でも問題ないはず。)

string[] lines = richTextBox1.Lines;
Array.Sort(lines);
richTextBox1.Lines = lines;

※並び順については、List<T>.Sortのヘルプに
「このメソッドは、QuickSort アルゴリズムを使用する System.Array.Sort を使用します。」
 とあるので、同じ結果になると思います。

引用返信 編集キー/
■30937 / inTopicNo.6)  Re[3]: C#2005を2003などで
□投稿者/ みきぬ (328回)-(2009/01/09(Fri) 15:56:36)
No30936 (よねKEN さん) に返信

ヽ(・∀・)人(・∀・)ノ
引用返信 編集キー/
■30938 / inTopicNo.7)  Re[4]: C#2005を2003などで
□投稿者/ επιστημη (1501回)-(2009/01/09(Fri) 15:57:58)
επιστημη さんの Web サイト
いたたた、そんな簡単にできちゃうですか。
元ネタの List<string> を ArrayList に置き換える作戦がマズかったなりー orz

引用返信 編集キー/
■30945 / inTopicNo.8)  Re[5]: C#2005を2003などで
□投稿者/ よねKEN (249回)-(2009/01/09(Fri) 16:20:44)
No30938 (επιστημη さん) に返信
> 元ネタの List<string> を ArrayList に置き換える作戦がマズかったなりー orz

できる限り元のコードを尊重する方向性ならεπιστημη さんの方法ですね。
(string相手なのでArrayListよりStringCollectionを使うと配列のコピー作業が1回
減ると思います。(dope.ToArray();でObjectの配列を作っている分がたぶん減るはず))
引用返信 編集キー/
■30953 / inTopicNo.9)  Re[4]: C#2005を2003などで
□投稿者/ dopeboy (4回)-(2009/01/09(Fri) 17:19:59)

ありがとうございました。

参考にします。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -