• ベストアンサー

Array 関数について

以前、成分解析プログラムで質問したものです。 あれからどうにかこうにかなっていますが、 どうしてもわからないものがあります。 それはArray関数です。 VBSでは「配列が格納されたバリアント型 (Variant) の値を返します。」とありますが、 それに相当する関数の類はVB.NETではいまいちわかりません。 どういう関数を使えばよいのでしょうか?

  • emesh
  • お礼率23% (10/43)

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

Dim Ary As Variant Ary = Array(1, 2, 3) ↓ .NETだと・・ Dim Ary() As Object Ary = New Object() {1, 2, 3} みたいな感じだったかな? .NETなら「Object」は任意の型にできます。

emesh
質問者

補足

ありがとうございます。 ただ、arrayをオブジェクトにしたら デバッグは出来るんですが、「○○の成分解析結果」が出なくなりました。 問題のソースコードを書いておきますが・・・。 Dim SortBox(), Result(), Key, Index As Object ReDim SortBox(Dict.Count - 1), Result(Dict.Count - 1) Index = 0 For Each Key In Dict.Keys() SortBox(Index) = New Object() {Dict(Key), CInt(Key)} Index = Index + 1 Next ですね。

その他の回答 (3)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.4

初期設定でなくて、まとめて設定できなくても、別段なんの問題も無いような気がします。

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

Array関数は、VB.NETではサポートしないとヘルプにあります。 引用 「Visual Basic 6.0 では、Array ステートメントを使用して 1 つの手順で配列の要素に値を代入して、配列が格納されたバリアント型 (Variant) を返していました。Array 関数は Visual Basic .NET ではサポートされていません。」 というわけでそのような関数はないのですが、 単に初期値の設定で使っているのであれば、 VB.NETでは、 Dim A1() As Integer = {0, 1, 2, 3} のように書いて初期値を設定できますから、置き換えることができるでしょう。

emesh
質問者

補足

うーんサポートしてないんですか。実は初期値の設定じゃないっぽいんですよ。

noname#20377
noname#20377
回答No.1

試してないし自信なし。ArrayListだかCollectionオブジェクトのようなものじゃだめかな? http://homepage1.nifty.com/rucio/main/dotnet/shokyu/standard27.htm Genericsとかも読んでおくとためになるかも http://naka.wankuma.com/site/kaisetu/dotnet/2.0_generics/generics1.htm

関連するQ&A

  • array関数に指定する引数が可変個の場合どうしたらよいでしょうか?

    array関数に指定する引数が可変個の場合どうしたらよいでしょうか? arrValue = Array("a","b","c") 上記のように、array関数を使ってvariant型の変数に格納したいのですが、 arrayに指定する個数が可変個の場合、どうやったらよいのでしょうか? arrayに指定する値は、他のプログラムによって 配列型変数"aaa"に格納済みです。 aaaに格納される配列数は可変個のため、 dim aaa() as string で定義して、取得できた数によって Redim で再定義しています。 aaaの配列数に応じて、if文などで、 配列数が1個だったら、arrValue = Array(aaa(0)) 配列数が2個だったら、arrValue = Array(aaa(0),aaa(1)) とすればできないことはないのですが、何個までを想定すればよいかも わからないため、困っています。 何かよい方法はないでしょうか?

  • array_rand関数

    現在、ランダム関数を使用して、配列にある値の中から ランダムにいくつかの配列を抜き出す処理を行っています。 $rand_keys = array_rand($id,2); for($k=0;$k<count($rand_keys);$k++){  $rand_id[$i][$k]=$id[$rand_keys[$k]]; } ただし、この関数では一つだけ取り出したい場合には使えません。 何かよい方法はありませんか??

    • ベストアンサー
    • PHP
  • mysql_fetch_array関数について

    お世話になります。 mysql_fetch_array(結果セット,受け取り配列タイプ) についてなのですが。 たとえばSQLの結果が複数件ある場合。 while($dtRec=mysql_fetch_array("select * from ***",MYSQL_ASSOC){ $result = $dtRec['aaaaa']; } 解説書には一件づつ受け取る結果の配列を 数値による配列で受け取るなら「MYSQL_NUM] フィールド名をキーとした配列で受け取るなら 「MYSQL_ASSOC」を指定、 両方なら「MYSQL_BOTH」を指定すると 書いてあるのですが、配列の意味が分かりません。 $resultにはEOFになるまで毎回、$dtRec['aaaaa'] の内容が格納されるのではないでしょうか? それとも、$resultにexplode関数のように 配列で件数分格納されるのでしょうか? 現在は、自分で配列に格納しようとしているので・・ (うまくいってません) いくら解説書を読んでも、MYSQL_NUM 、MYSQL_ASSOCの意味がよく理解 できません。 宜しくお願い致します。

    • ベストアンサー
    • MySQL
  • push(@array, {}); について

    いつもお世話になります。 いまperlのプログラムを読んでいるのですが、 push(@array, {});  という記述があり@arrayという配列の最後に値を追加しているというのはわかるのですが、どんな値なのか、つまり{}の意味がわかりません。スペースでしょうか? よろしくお願いいたします。

    • ベストアンサー
    • Perl
  • VBAのWorksheetFunctionの引数に配列を使いたい

    VBAにチャレンジし始めて、1ヶ月ほどの者です。 WorksheetFunctionの引数にVBAの配列を入れて計算させたいと思っています。 例えば、作業用の配列temp_arrayを定義し、temp_array()に格納した数字の平均値をWorksheetFunctionで求めるといったことです。 しかし、 Dim temp_array() As Variant Dim a As Double a = WorksheetFunction.Average(temp_array()) としても、 「実行時エラー'1004' WorksheetFunctionクラスのAverageプロパティーを取得できません」 というエラーで叱られます。 ネットで調べていると、Excelのワークシート関数には、引数として配列を扱えるものが多いとあったので、試してみています。 例えば、参考にしたのは下記のサイトの記述です。 http://www.clayhouse.jp/array/array03_d.htm もちろん、平均値を求めるぐらいなら、自分で関数をつくった方が早いのだとは思いますが、エクセルには色々な統計関数があるので、本当に配列として、WorksheetFunctionに簡単にわたせるなら、相当プログラムが楽でシンプルにできるなぁと思います。 もし、よくご存じの方がいたらアドバイスいただけませんでしょうか?

  • array の使い方

    VBで作業しています。VB6ではありません。 array 関数でサンプルプログラムなどをみているとよく、 test=array("りんご","バナナ","らっきょ")などとあります。このりんご、バナナにあたる部分がもし 数、文字 が毎回かわるデータを取得してきたい場合どうすればいいのでしょうか? test=array(??????どうすれば?? うまく説明しづらいのですが、XSIという3Dソフトのスクリプトで ダイアログボックスを表示する際に、そのダイアログの選択肢をarrayで中身を記入しなければいけません。しかし、その選択肢が常に変化しているパラメータなのであらかじめ array内に決定しておくことができないのです。すみません、、わかりづらいかもしれませんがよろしくお願いします。

  • 関数が認識されません。

    以前VBで成分解析プログラムの作成について質問したものですが、以前の回答にあったとおりVBスプリクトで作成してたプログラムを参考に改良しようとしているのですが、ANDには「'.' が必要です。」とか Char = Asc(Mid(Text, StrIndex, 1))などに対して 「'Char' は型です。有効な式ではありません。」 「名前ABSは宣言されていません」(ってABSって絶対値関数ですよね?)というエラーが多数出ています。 どうすればよいのでしょうか?お教えいただけませんか?

  • array_uniqueについて

    こんにちは。質問させてください。 array_unique関数はPHP4.04以降は使用できないと マニュアルに記述されていました。 ですがどうしても配列内の重複した値を 削除したいのですが、ロジックがうまく 思いつけません・・・ どなたかわかる方はいらっしゃいますか? $test_array = array("america","japan","america","canada","japan"); ⇒ ("america","canada","japan") しかもソートしたいです!! 宜しくお願い致しますm(_ _)m

    • 締切済み
    • PHP
  • array_randの改善・配列からランダムにキーを取得

    配列からランダムに値を取得したい。関数array_randを用いると可能だが、同じ値を繰り返し取得してしまうことがある。この点を改善したい。方法をおしえてください。 (例) 配列 1,2,3,4,5,6,7,8,9 からarray_randでランダムに1つ選ぶ。 1回目、4が選ばれる。array_randの場合、2回目も4が選ばれてしまうことがある。これを4以外の8つの値から1つを選ぶように改善したい。これを繰り返す。最後は配列が空になるようにしたい。 状況 phpを実行する都度、配列は、別ファイルのデータを読み込んで使用している。実行するユーザーの識別が必要でしょうか?

    • 締切済み
    • PHP
  • 二次元配列のソート PHP

    タイトルのとおりソートを行ってくれる関数を探しております。 $buf[][]の二次元配列の変数を日付の降順に並べ替えたいのですが、そういった関数は用意されていますか? sort()、rsort()では不可能かと思います。 以下、二次元配列の値です。配列三番目の日付の降順で再格納したいです。 ( [0] => Array ( [0] => 1[1] => name1 [2] => 2006-08-18 ) [1] => Array ( [0] => 2 [1] => name2[2] => 2006-08-28 ) [2] => Array ( [0] => 3[1] => name3 [2] => 2006-08-18 ) [3] => Array ( [0] => 4 [1] => name4[2] => 2006-08-18 ) よろしくお願いいたします。

    • ベストアンサー
    • PHP

専門家に質問してみよう