DOBON.NET DOBON.NETプログラミング掲示板過去ログ

演算の結果を配列に格納する方法について

環境/言語:[Windows XP VS C# 2010 Express]
分類:[.NET]

よろしくお願いします。
質問内容はタイトルの通りで、現在作成しているプログラムの中で、データグリッドビューの内容を取得し、その内容を演算したものを表示するというプログラムを作成していました。表示するだけなら簡単だったのですが、次にその演算結果を配列に格納するよういわれ、分からずに困っています。
以下にソースコードを書きますが、このプログラムをどのように変えればよいか分かる方いましたらご教授していただきたく思います。
よろしくお願いします。

private void operation_button_Click(object sender, EventArgs e)
        {
            double a = 0;
            double b = 0;
            double result = 0;
                        for (int i = 0; i <= dataGridView1.ColumnCount; i++)
            {
                a = Convert.ToDouble((string)dataGridView1.Rows[i].Cells[1].Value);
                b = Convert.ToDouble((string)dataGridView1.Rows[i].Cells[0].Value);
                result = (500*a*360)/(100*120*60);
                if (i < dataGridView1.ColumnCount)
                {
                    MessageBox.Show(a.ToString());
                    MessageBox.Show(result1.ToString());
                }
                else
                {
                    MessageBox.Show("end");
                }
            }
        }
■No27825に返信(としおさんの記事)

resultを配列で定義して
result[i] = 〜;
で代入

forループをColumnCount(列数)を条件にしているのが気になる。
■No27826に返信(shuさんの記事)
> ■No27825に返信(としおさんの記事)
>
> resultを配列で定義して
> result[i] = 〜;
> で代入
>
> forループをColumnCount(列数)を条件にしているのが気になる。

shuさん、早速のお返事ありがとうございます。
> resultを配列で定義して
double[] result = null;
result = new double[インデックス];
ということですね?

> forループをColumnCount(列数)を条件にしているのが気になる。
これについては私の単純な間違いです。大変失礼しました。

おかげさまで配列に演算結果を代入することができました。ご教授していただきありがとうございます。まだまだ初心者なので、またよろしくお願いします。
解決済み!
■No27827に返信(としおさんの記事)
> double[] result = null;
> result = new double[インデックス];
> ということですね?

その 2 行を連続して書くのであれば、double[] result = new double[10]; といったように 1 行で書けば良いと思います。
また、確保する個数である [ ] 内の数値は「インデックス」ではなく、「要素数」です。
今回の場合は、RowCount が要素数に該当するでしょうか。(ざっくりとしか見てませんが)
2010/12/16(Thu) 14:31:13 編集(投稿者)

■No27828に返信(Azuleanさんの記事)
> ■No27827に返信(としおさんの記事)
>>double[] result = null;
>>result = new double[インデックス];
>>ということですね?
>
> その 2 行を連続して書くのであれば、double[] result = new double[10]; といったように 1 行で書けば良いと思います。
> また、確保する個数である [ ] 内の数値は「インデックス」ではなく、「要素数」です。
> 今回の場合は、RowCount が要素数に該当するでしょうか。(ざっくりとしか見てませんが)

返事が遅くなってしまい申し訳ありません。
> その 2 行を連続して書くのであれば、double[] result = new double[10]; といったように 1 行で書けば良いと思います。

確かにおっしゃるとおりにすることでソースが短くなり、すっきりしました。

> また、確保する個数である [ ] 内の数値は「インデックス」ではなく、「要素数」です。
> 今回の場合は、RowCount が要素数に該当するでしょうか。(ざっくりとしか見てませんが)

このことについてもおっしゃるとおりです。
お二方のおかげで思い通りのプログラムになりました。
ありがとうございます。
またよろしくお願いします。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板