二次元配列の検索 への返答
投稿で使用できる特殊コードの説明。(別タブで開きます。)
以下の返答は逆順(新しい順)に並んでいます。
投稿者 魔界の仮面弁士  (社会人)
投稿日時
2008/12/10 23:14:06
単純に、For ループで探すのてっとり早いと思いますよ。もし、インデックスで管理したいなら、
2 次元配列ではなく、DataTable や ジャグ配列等で管理しなおす事も検討してみてください。
2 次元配列ではなく、DataTable や ジャグ配列等で管理しなおす事も検討してみてください。
投稿者 初心舎  (社会人)
投稿日時
2008/12/10 19:46:43
魔界の仮面弁士さま、自分の質問の内容が不明確にもかかわらず、ご回答ありがとうございました。
早速試してみました。
ありがとうございます。
追加で質問させていただきます。
1.
今回の配列のインデックスを返す方法がありますか?
[0]もしくは[0,1]を返す方法があれば、ご教授ください。
Dim target(,) As String = {{"abc", "def"}, {"ghi", "jkl"}, {"uvw", "xyz"}}
2.
各列ごとに検索することも可能でしょうか?
配列が下記のようになっており、2列目だけで検索を行ないたいと思っています。
2列目の"重要"を検索するときに、3列目の"重要"を検索対象外にしたいのです。
Dim target(,) As String = {{"test1.doc","重要", "重要"},
{"test2.doc","重要", "一般"},
{"test3.doc","顧客", "一般"}}
最終的には、2列目で"重要"となっている行全体を、DataGridViewに表示したいと考えております。
よろしくお願いいたします。
早速試してみました。
ありがとうございます。
追加で質問させていただきます。
1.
今回の配列のインデックスを返す方法がありますか?
[0]もしくは[0,1]を返す方法があれば、ご教授ください。
Dim target(,) As String = {{"abc", "def"}, {"ghi", "jkl"}, {"uvw", "xyz"}}
2.
各列ごとに検索することも可能でしょうか?
配列が下記のようになっており、2列目だけで検索を行ないたいと思っています。
2列目の"重要"を検索するときに、3列目の"重要"を検索対象外にしたいのです。
Dim target(,) As String = {{"test1.doc","重要", "重要"},
{"test2.doc","重要", "一般"},
{"test3.doc","顧客", "一般"}}
最終的には、2列目で"重要"となっている行全体を、DataGridViewに表示したいと考えております。
よろしくお願いいたします。
投稿者 魔界の仮面弁士  (社会人)
投稿日時
2008/12/10 10:46:20
二次元配列の型が何なのか、また、要素の完全一致なのか部分一致なのかなど、
質問文からでは読み取れない部分もありますが、たとえば、
質問文からでは読み取れない部分もありますが、たとえば、
Dim target(,) As String = {{"abc", "def"}, {"ghi", "jkl"}, {"uvw", "xyz"}}
という2次元配列があって、この中に「def」に一致する物があるかどうかを調べるなら、Dim findItem As String = "def"
Dim hasItem = (From x As String In target Where x = findItem).Any()
などはどうでしょう。この場合は、hasItem の中身は True となります。
投稿者 初心舎  (社会人)
投稿日時
2008/12/10 04:28:19
お世話になります。
VB.NET 2008 Expressを利用して、勉強始めたばかりのものです。
二次元配列を作成して、その配列の中に特定文字があることを調べる
ことはできますでしょうか?
indexofを利用するかと思いましたが、一次元配列のみに利用できると
のことで、困っております。
簡単なサンプルなどがございましたら、ご教授いただきたいと思います。
よろしくお願いいたします。
VB.NET 2008 Expressを利用して、勉強始めたばかりのものです。
二次元配列を作成して、その配列の中に特定文字があることを調べる
ことはできますでしょうか?
indexofを利用するかと思いましたが、一次元配列のみに利用できると
のことで、困っております。
簡単なサンプルなどがございましたら、ご教授いただきたいと思います。
よろしくお願いいたします。
ご指導ありがとうございました。
ご推奨いただきました、Forループを利用した手順を利用することにいたしました。
コーディングも、ほぼ終了し、配列内の検索も問題なくできています。
今後もご指導、よろしくお願いいたします。