Visual Basic 2005 Express Edition を利用しています。
「Visual Basic 2008 に移行すれば簡単になる」なら、
そのような回答も歓迎いたします。
ファイル内容とともにこれへのレスとして書き込むコード (*1)
において "...?" の位置で以下の操作 (*2) を行いたいのですが
・ 大量の変数を渡しあう
・ グローバル変数を使う
方法しか思いつきませんでした。どのようにすればこれらを回避できるでしょうか。
(操作)
a_s のすべての要素 a_s(i) に対し、
a_s(i).E のすべての要素 a_s(i).E(j) に対し、
もし、b_s(k).Index = a_s(i).E(j) となるような k が存在していれば
b_s(k).E の最後に a_s(i).Index を追加
さもなければ
b_s の最後に b_s(m).Index = a_s(i).E(j) かつ b_s(m).E = {a_s(i).Index} となるような b_s(m) を作成して追加
(*1) 実際のコードでは他の変数やらメソッドやらをいろいろと持っていますし、
名前も変更してありますが、必要な部分だけ抜き出して抽象化しました。
(*2) 実生活に例えるとこれは
「オリンピックの参加国がそれぞれどの競技に選手を派遣しているか」
のデータから
「オリンピックの各競技はそれぞれどの国からの選手で競われるか」
を割り出すようなものです。