1

c# で複数の変数の配列を持つ方法はありますか?

たとえば、株式のデータがあります。

日付 |始値 |高値 |安値 |終値

10-01-2012| 10.00| 11.01| 9.56| 10.56

2012 年 2 月 10 日| 10.56| 10.99| 9.21| 9.99

10-03-2012| 9.99 | 10.12| 9.78| 10.11


私がやりたいことは、DateTime と String 変数を取り、double/string を出力する配列を作成することです。

したがって、2012 年 10 月 1 日の株式の始値を取得したい場合は、次のように言えます。

DateTime Day = Convert.ToDateTime("10-01-2012"); double openPrice = MyArray[Day,"始値"];

double または文字列として 10.00 を返します。

これを行う最善の方法は何ですか?これは配列でも可能ですか?そうでない場合、他にどのような方法を使用できますか? 私はしばらくこれについて考えていましたが、この配列/オブジェクトを構築する最良の方法がわかりません

助けてくれてありがとう!

4

3 に答える 3

5

データを含む単一のクラスを作成し、それらの配列またはリストを作成することをお勧めします。

class DailyPrice
{
    DateTime Date { get; set; }
    decimal Open { get; set; }
    decimal Close { get; set; }
    decimal High { get; set; }
    decimal Low { get; set; }
}


static class Program
{
    static void Main()
    {
        List<DailyPrice> prices = new List<DailyPrice>();
        prices.Add(new DailyPrice() { Date = DateTime.Today, Open = 11.11M, Close=... });
        prices.Add(new DailyPrice() { Date = DateTime.Today, Open = 12.14M, High=... });
        ...
    }
}

doubleちなみに、 C# で型を使用して算術演算を実行する際の精度の問題により、ユーザーdecimalは金銭的な値を使用する方が安全です (ここにあると思います)。

于 2013-01-26T03:58:07.130 に答える
2

次のように、辞書内で辞書を使用できます。

var stocks = new Dictionary<DateTime, Dictionary<String, Double>>

次に、価格にアクセスするには:

Double price = stocks[Day]["Open"]
于 2013-01-26T04:04:59.693 に答える
0

私の知る限り、配列ではできませんが、Dictionnary<> でこれを実現できます。

Dictionnary<DateTime, double[]>

そうすれば、日ごとに値を「インデックス化」することができ、double 配列の位置 0 で「オープン」値を取得できます。

必要な「10.00」値を取得するには、次のようにする必要があります。

openvalue = mydic[Day][0];

于 2013-01-26T03:55:11.390 に答える