ここから本文です

C#のリストボックスの項目取得で困っています。 選択されていない項目も含めて、...

ronge_smartさん

2013/10/723:59:19

C#のリストボックスの項目取得で困っています。
選択されていない項目も含めて、配列の変数に全て格納したいのですがどうすればいいでしょうか?

現在は以下のようにソースを書いています。

for (int i = 0; i < listBox1.Items.Count; i++)

string[] adress = (string)listBox1.Items[i];
System.IO.StreamWriter sw = new System.IO.StreamWriter(@"C:\Users\Yusuke\Desktop\aaa.txt",
false, System.Text.Encoding.GetEncoding("shift_jis"));
//TextBox1.Textの内容を書き込む
sw.Write(adress);
//閉じる
sw.Close();

}

問題となるのは以下の部分です。

string[] adress = (string)listBox1.Items[i];

この書き方だと、コンパイルエラーが出て配列にリストボックスの値を格納することができません。

以下の書き方も試したのですが、どうもコンパイルエラーがでてしまいます。

string[] adress;

adress[i] = (string)listBox1.Items[i]

以下のように書けば、単発では項目の取得ができるのですが、
リストボックスに入っている全ての項目を取得したいです。

string adress = (string)listBox1.Items[0];

Itemを使えば良いのはわかるのですが、
グーグルで調べて同じような情報しかでてこず困っています・・。
アドバイスいただければうれしいです。
よろしくお願いします。

補足なお、開発環境は

VisualStudio2008(C#3.0)
.NET 3.5

で行っております。よろしくお願いします。

この質問は、活躍中のチエリアン・専門家に回答をリクエストしました。

閲覧数:
8,622
回答数:
2
お礼:
25枚

違反報告

ベストアンサーに選ばれた回答

2013/10/800:15:35

ソースコードの一番てっぺんに以下の1行を追加。

using System.Linq;


で、目的の箇所で以下の1文を記載。forループとかはいりません。

string[] address = this.listBox1.Items.Cast<string>().ToArray();

質問した人からのコメント

2013/10/8 23:56:20

ありがとうございます!
解決できました!!

ベストアンサー以外の回答

1〜1件/1件中

2013/10/800:10:52

配列に入れるなら、こんな感じかな。

string[] address = new string[listBox1.Items.Count];
for( int i = 0; i < listBox1.Items.Count; i++ ) {
address[ i ] = (string)listBox1.Items[ i ];
}


using (System.IO.StreamWriter sw = new System.IO.StreamWriter(@"C:\Users\Yusuke\Desktop\aaa.txt", false, System.Text.Encoding.GetEncoding("shift_jis")))
{
foreach (string address in this.listBox1.Items)
{
sw.Write(address);
}
}

のようにして、直接ファイルに書き込めばいいような気もするけど・・・。

あわせて知りたい

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問や知恵ノートは選択されたID/ニックネームのMy知恵袋で確認できます。