2017-05-22 3 views
1
class AgeWeightedHistorical 
    { 
     public DateTime ExposureDate { get; set; } 
     public double ProfolioPrices { get; set; } 
     public double LastPeriods { get; set; } 
     public double HybridWeights { get; set; } 
     public double CummulativeWeights { get; set; } 
    } 
    private List<AgeWeightedHistorical> Data; 

protected void Page_Load(object sender, EventArgs e) 
    { 
     double[] values ={1275,1254.380054,1288.972603,1292.276423, 1302.272727,1264.986911,1349.010554,1265.461347,1287.81407,1268.656716,       1278.1875,1284.538653,1281.311881,1303.263547,1262.710843,1271.89781,1287.439024,1265.76087,1290.510949,1305.649038,1316.901408,1298.181818,1292.075893,1283.42511,1258.260394}; 
     DateTime[] datetime ={Convert.ToDateTime("10/02/2010"), Convert.ToDateTime("10/03/2010"),Convert.ToDateTime("10/04/2010"),Convert.ToDateTime("10/05/2010"),Convert.ToDateTime("10/06/2010"),Convert.ToDateTime("10/07/2010"),Convert.ToDateTime("10/08/2010"),Convert.ToDateTime("10/09/2010"),Convert.ToDateTime("10/10/2010"),Convert.ToDateTime("10/11/2010"),Convert.ToDateTime("10/12/2010"),Convert.ToDateTime("10/13/2010"),Convert.ToDateTime("10/14/2010"),Convert.ToDateTime("10/15/2010"),Convert.ToDateTime("10/16/2010"),Convert.ToDateTime("10/17/2010"),Convert.ToDateTime("10/18/2010"),Convert.ToDateTime("10/19/2010"),Convert.ToDateTime("10/20/2010"),Convert.ToDateTime("10/21/2010"),Convert.ToDateTime("10/22/2010"),Convert.ToDateTime("10/23/2010"),Convert.ToDateTime("10/24/2010"),Convert.ToDateTime("10/25/2010"),Convert.ToDateTime("10/26/2010")}; 
     GridView1.DataSource = Service(values, datetime); 
     GridView1.DataBind(); 
} 
private static List<AgeWeightedHistorical> Service(double[] values, DateTime[] datetime) 
    { 
     List<AgeWeightedHistorical> Data = new List<AgeWeightedHistorical>(); 
     AgeWeightedHistorical ag = new AgeWeightedHistorical(); 
     for (int i = 0; i < values.Length; i++) 
     { 
      ag.ExposureDate = datetime[i]; 
      ag.ProfolioPrices = values[i]; 
      ag.LastPeriods = values.Length - Data.Count; 
      Data.Add(ag); 
     } 
     return Data; 
    } 

上記のコードでは、価格、日付、過去の期間がグリッドビューに追加されます。しかし、グリッドビューはすべての行に対して同じ値を取得しています。ループにクラスプロパティの値は最後の値をリストに追加するとforloopに入ります。

AgeWeightedHistorical ag = new AgeWeightedHistorical(); 

:あなたはこの行を移動する必要が...

答えて

1

私を助けてください。それ以外の場合は、常に同じオブジェクトを使用します。だから、このforループのようなものでなければなりません:

for (int i = 0; i < values.Length; i++) 
{ 
    AgeWeightedHistorical ag = new AgeWeightedHistorical(); 
    ag.ExposureDate = datetime[i]; 
    ag.ProfolioPrices = values[i]; 
    ag.LastPeriods = values.Length - Data.Count; 
    Data.Add(ag); 
} 

そして、あなたは、あなたがあまりにもvarを使用することができ、この場合に知っています。もっときれい。このように:

for (int i = 0; i < values.Length; i++) 
{ 
    var ag = new AgeWeightedHistorical(); 
    ag.ExposureDate = datetime[i]; 
    ag.ProfolioPrices = values[i]; 
    ag.LastPeriods = values.Length - Data.Count; 
    Data.Add(ag); 
} 
+0

です。ありがとうございます – Jyothi

+0

私はAgeWeightedHistoricalを使用しない理由を知っているかもしれませんag = new AgeWeightedHistorical(); – Jyothi

+0

@Jyothi:あなたはそれがうまくいくことができます。たぶんそれは単なるコーディングスタイルです。あなたが新しいことを宣言するとき、それを二度伝える必要はありません。私は個人的にはそれがよりクリーンでより明確であると考えています – Arion

関連する問題