- 題名: ArrayListの使い方
- 日時: 2005/04/21 23:53:27
- ID: 10598
- この記事の返信元:
- (なし)
- この記事への返信:
- [10599] Re[1]: ArrayListの使い方2005/04/22 1:23:16
- ツリーを表示
■No10598に返信(kyoroさんの記事) > al.Add(sr.ReadLine().Split(',')); ここで Splitメソッドでの戻り値は string[] になるので string[] でArrayList に追加しています。 故に取得するときも string[] で取得しなければなりません。 例) using System; using System.IO; using System.Text; using System.Collections; namespace CSVRead { class MainClass { public static void Main( string[] args ) { StreamReader srCSVFile = new StreamReader( "C:\\test.csv", Encoding.GetEncoding( "Shift_JIS" ) ); ArrayList alData = new ArrayList(); while ( srCSVFile.Peek() > -1 ) { alData.Add( srCSVFile.ReadLine().Split( ',' ) ); } srCSVFile.Close(); foreach ( string[] astrData in alData ) { foreach ( string strData in astrData ) { Console.Write( "{0},", strData ); } Console.Write( "\n" ); } } } } 参考Webページ http://ukamen.hp.infoseek.co.jp/Programming/Collection/ (宇宙仮面の C# プログラミング)
分類:[.NET]
始めまして。
このたびC#のプログラミングを始めて行うことになり、
お見苦しい質問かもしれませんがお力をお貸しください。よろしくお願いいたします。
遣りたいことは、カンマ区切りのCSVファイルのデータ読み込みです。
ArrayListに読み込んだのですが、ArrayListからのデータ取得が出来ません。
以下のようなソースを書いたのですが・・・。
//ファイル読み込み
System.IO.StreamReader sr = new System.IO.StreamReader
( @"c:\test.csv",
System.Text.Encoding.GetEncoding("shift-jis"));
//ArrayListに読み込み
ArrayList al = new ArrayList();
while (sr.Peek() > -1)
{
al.Add(sr.ReadLine().Split(','));
}
sr.Close();
-------------------------------
csvファイルの中身が
aaa,1111
bbb,2222
ccc,3333
だとすると、
ArrayList配列alには
_items
[0]
[0] "aaa"
[1] "1111"
[1]
[0] "bbb"
[1] "2222"
・
・
・
と格納されているようなのですが、
この取得の仕方がわからないのです。
for文で回して各行の項目をそれぞれ取得したいのですが、
試しに
string str = al[0].ToString();
としたところ、"System.String[]"と取得されてしまいました。
System.Collections.IEnumerator myEnumerator = (IEnumerator)al.GetEnumerator();
としてみたのですが、
string str = myEnumerator.Current.ToString();
でも同じ結果です。
もしかして
myEnumerator.Current[0];で取れるかと思ったのですが
やはりエラーでした。
全然分かっておらず申し訳ないのですが、
ご教授くださいませ。
よろしくお願いいたします。