質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
ArrayList

Java用のタグです。arrayListはListインターフェースを実装した、リサイズ可能な配列用クラスです。

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

Q&A

解決済

1回答

6423閲覧

VB.NETのArrayListの要素検索方法に関する質問

HidehiroOgata

総合スコア15

ArrayList

Java用のタグです。arrayListはListインターフェースを実装した、リサイズ可能な配列用クラスです。

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

0グッド

0クリップ

投稿2015/12/05 11:35

編集2015/12/05 11:37

1行目、1列目にデータのタグがかかれたCSVファイルを読み込んで、行のタグ、列のタグから指定した値を取り出すプログラムを書いています。

<データ構造>

**,a,b,c

X,1,2,3

Y,4,5,6

ここでfunc(a,X)とすると、値として"1"が出てくるという処理を行いたいと思っています。(行のタグ、列のタグはそれぞれ文字列です。)

csvファイルをarray listに代入する方法は、
http://pckowaza.web.fc2.com/html/vbdotnet_file_read_csvfile.html
に書かれているコードで実現できました

しかし、func(a,X)のプログラム方法で悩んでいます。

1D配列の場合の検索方法は、調べるといろいろとあるようですが、2D配列で要素番号(行番号、列番号)を取得する方法がみつかりませんでした。

ご存じの方、教えていただけると、助かります。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

こんにちは。

参考にされたサイトはArrayListに格納しています。
なので要素をString配列にキャストしてインデクサにアクセスする必要があります。

VB.NET

1Function Hoge(row As Integer, col As Integer) As String 2 3 Dim arrCsvData As New ArrayList() 4 arrCsvData.Add(New String() {"a1", "b1", "c1"}) 5 arrCsvData.Add(New String() {"a2", "b2", "c2"}) 6 arrCsvData.Add(New String() {"a3", "b3", "c3"}) 7 arrCsvData.Add(New String() {"a4", "b4", "c4"}) 8 arrCsvData.Add(New String() {"a5", "b5", "c5"}) 9 10 Return DirectCast(arrCsvData(row), String())(col) 11 12End Function

実際のところはArrayListを使うケースはいまはほとんどないのでList<T>に格納したほうが扱いやすいと思います。

VB.NET

1Function Hoge(row As Integer, col As Integer) As String 2 3 Dim arrCsvData As New List(Of String()) 4 arrCsvData.Add(New String() {"a1", "b1", "c1"}) 5 arrCsvData.Add(New String() {"a2", "b2", "c2"}) 6 arrCsvData.Add(New String() {"a3", "b3", "c3"}) 7 arrCsvData.Add(New String() {"a4", "b4", "c4"}) 8 arrCsvData.Add(New String() {"a5", "b5", "c5"}) 9 10 Return arrCsvData(row)(col) 11 12End Function

投稿2015/12/05 11:47

Tak1wa

総合スコア4791

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

HidehiroOgata

2015/12/12 06:56

LISTで組みなおして、無事動きました。 LISTの2D配列のやり方が理解できました。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問