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

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

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

Re[2]: ArrayListへの入れ方


(過去ログ 127 を表示中)

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

■75453 / inTopicNo.1)  ArrayListへの入れ方
  
□投稿者/ あんち (2回)-(2015/03/26(Thu) 12:24:28)

分類:[VB.NET/VB2005 以降] 

st_arrayをアレイリストで定義してます。
下のDebug.WriteLineの所で、myField(myProperty).ToString()の値を
st_arrayに入れたいのですが、わかりません。

Debug.WriteLineの前で、
st_array(i,j) = myField(myProperty).ToString()
とでもして入れればいいのかと思うのですが、
オブジェクトに対する引数が多すぎるととエラーします。



Public st_array As New ArrayList


        sAdp = New SqlClient.SqlDataAdapter("SELECT * FROM master2", Cn)
        sAdp.Fill(SchemaTable)

        For Each myField In SchemaTable.Rows
            For Each myProperty In SchemaTable.Columns
                Debug.WriteLine(myProperty.ColumnName & " = " & myField(myProperty).ToString())
            Next
            Debug.WriteLine("")
        Next

引用返信 編集キー/
■75455 / inTopicNo.2)  Re[1]: ArrayListへの入れ方
□投稿者/ 魔界の仮面弁士 (265回)-(2015/03/26(Thu) 12:47:43)
No75453 (あんち さん) に返信
> st_arrayをアレイリストで定義してます。

これは、System.Collections.ArrayList のことでしょうか?

.NET 2.0 以降ではジェネリックが使えるようになったので、
ArrayList が使われることは殆んどなくなりましたが、
今回は ArrayList で良いのですね?


> 下のDebug.WriteLineの所で、myField(myProperty).ToString()の値を
今回はすべて ToString しているようですし、それなら ArrayList ではなく、
文字列型を扱うためのコレクション、たとえば List(Of String) とかを
使った方が良いのでは無いでしょうか。

それと今回の場合、
 myField は DataRow 型
 myField(n) は 各列の値
ですよね。
行を表す変数なら、Field より Row の方が良い気がします。


ちなみに、値の一覧が欲しいだけなら、列ごとに取り出さなくても
 hoge = myField.ItemArray
のように、DataRow の ItemArray プロパティでまとめて取り出せますよ。
データ型は ArrayList ではなく Object配列ですけど。


> Debug.WriteLine(myProperty.ColumnName & " = " & myField(myProperty).ToString())
> st_arrayに入れたいのですが、わかりません。

どのように入れたいのでしょうか?


たとえば
 11,12,13,14,15
 21,22,23,24,25
 31,32,33,34,35
のような、3行5列のデータがあったとして…

列単位で管理:st_array(1) が {"11", "21", "31"} な配列になるようにしたい
行単位で管理:st_array(1) が "21,22,23,24,25" なカンマ区切りデータになるようにしたい
行単位で管理:st_array(1) が {"21", "22", "23", "24", "25"} な配列になるようにしたい


> st_array(i,j) = myField(myProperty).ToString()
ArrayList は、2 つの引数を受け取れません。

「コレクション」――配列とか ArrayList とか List(Of )とか―を
ArrayList に詰め込むようにすれば、たとえば
st_array(行)(列) の形で取り扱えるようにもできますが、
それなら ArrayList なんて使わずとも、SchemaTable.Rows(行)(列) のままで良いわけで。
引用返信 編集キー/
■75461 / inTopicNo.3)  Re[2]: ArrayListへの入れ方
□投稿者/ あんち (3回)-(2015/03/26(Thu) 15:28:21)
No75455 (魔界の仮面弁士 さん) に返信
配列とかテーブルがわからず作ってるのがありありです。
いろいろと提案して頂き感謝致します。
Dim SchemaTable As DataTable = New DataTable
とかして、DataTableで作る事にしました。
For Each とか全く使わなくてすっきりです。
ありがとうございました。
解決済み
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -