- - PR -
ArrayListにアイテムを追加する方法
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-02-15 12:58
初めて書き込みさせていただきます。
ArrayListの使い方についてなのですが、 例えば以下のようなコードで、追加するとします。 ArrayList al = new ArrayList(); Process[] localAll = Process.GetProcesses(); for (int i = 0; i < localAll.Length; i++) { al.Add(localAll[i].Id.ToString()); al.Add(localAll[i].MainModule.ModuleName); } そうしますと、alをクイックウォッチで見ると以下のようになるかと思います。 al ├[0] 0 ├[1] System ├[2] 188 ├[3] svchost.exe ├[4] 122 ├[5] test.exe ├[6] 1234 (以下続く) これでは、扱いにくいので、以下のようにするにはどうしたらよいでしょうか。 al ├[0] │├[0] System │└[1] 188 │ ├[1] │├[0] svchost.exe │└[1] 122 │ ├[2] │├[0] test.exe │└[1] 1234 どうしてもわからなかったので今は以下のようにしています。 ArrayList al = new ArrayList(); ArrayList al2 = new ArrayList(); string[] test; Process[] localAll = Process.GetProcesses(); for (int i = 0; i < localAll.Length; i++) { al.Add(localAll[i].Id.ToString()); al.Add(localAll[i].MainModule.ModuleName); test = (string[])al.ToArray(typeof(string)); al2.Add(test); al.Clear(); } 結局al2を使ってます。 すごく無駄な事をしているなぁと思ってはいるのですが、 分からず、なんとかしなければという思いで投稿させていただきました。 よろしくお願いいたします。 | ||||||||||||
|
投稿日時: 2006-02-15 13:18
ArrayList だけでやりたいってのなら答えにならないかもしれませんが。
_________________ 囚人のジレンマな日々 [ メッセージ編集済み 編集者: 囚人 編集日時 2006-02-15 13:21 ] | ||||||||||||
|
投稿日時: 2006-02-15 13:26
ちょっとやりたいことや問題になっていることが分かりづらいんですが、「クイックウォッチでの見え方」が問題なんですか?
クイックウォッチで見たときの見え方を変えたいということ? | ||||||||||||
|
投稿日時: 2006-02-15 13:32
VB.Net ですいません
こんな感じでどうですか?
| ||||||||||||
|
投稿日時: 2006-02-15 13:51
正しくは、localAll.Length - 1 かな? _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||
|
投稿日時: 2006-02-15 13:51
一郎様、
お返事ありがとうございます。 ご質問に答えさせてください。
いいえ。 クイックウォッチで見たときの「見え方」を替えたいという事ではありません。 例えば「al」をDataTableとして扱いたい場合、 最初に記述した方のコードでは、そのDataTableをDataGridに表示するとき、 横または縦に一行(一列)の長いデータが表示される事になってしまうかと思います。
と、しました通り、後に記述した方の書き方にしましたら、上記の問題が解決し、 扱いやすいデータ形式となりましたので、このような方法を探しておりました。 質問内容が幼稚で且つ分かりにくい内容ですみませんでした。 今後は、もう少し分かりやすい書き方をするように気をつけます。 ご指摘ありがとうございました。 囚人様、 お返事ありがとうございます。 そして、コードも書いてくださり、とてもうれしいです。 今までわかったようなつもりで書いていましたが、 ご提示いただいたサンプルコードを拝見し、 凝り固まっていた脳が少し柔らかくなった気がします。 お陰様で、道が開けた感があります。 助かりました。 ありがとうございました。 かるあ様、 お返事ありがとうございます。
これからすぐ試してみたいです。 ご提示いただいた方法ができれば、 今まで何だったんだろうと言う感じです。 また後ほど、書き込みさせていただきます。 ありがとうございました。 | ||||||||||||
|
投稿日時: 2006-02-15 13:54
じゃんぬねっと様、
同時刻での書き込みで失礼しました。 試みた後、書き込みさせていただきます。 アドバイス感謝します。 ありがとうございました。 | ||||||||||||
|
投稿日時: 2006-02-15 14:01
それと、MainModule.ModuleName って取得できる保証はないですよ。
とりあえず、foreach を使ってなるべくスコープを縮めた版。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 |