2012-05-27 74 views
0

有一類:C#列表<object>

public class SampleInformation 
{ 
    public string Nutrient { get; set; } 
    public decimal NutrientTotal { get; set; } 
    public int NoSamples { get; set; } 
    public decimal Average { get; set; } 
    public decimal StandardDeviation { get; set; } 
    public decimal CoVariance { get; set; } 
    public decimal PSD { get; set; } 
    public decimal NSD { get; set; } 
} 

,並創建了相同的列表。 現在同時增加值,我想有 PSD =平均+ StandardDeviation和 NSD =平均 - StandardDeviation

我的代碼去爲:

sampleInfoList.Add(new SampleInformation 
      { 
       Nutrient = "Dry Matter", 
       NoSamples = CalculateSampleCount(dryMatter), 
       Average = CalculateAverage(dryMatter), 
       StandardDeviation = CalculateStandardDeviation(dryMatter), 
       CoVariance = CalculateCoVariance(dryMatter), 
       NSD = 0, 
       PSD = 0, 
       NutrientTotal = 0 
      }); 

我怎麼能有這樣的事情

sampleInfoList.Add(new SampleInformation 
      { 
       Nutrient = "Dry Matter", 
       NoSamples = CalculateSampleCount(dryMatter), 
       Average = CalculateAverage(dryMatter), 
       StandardDeviation = CalculateStandardDeviation(dryMatter), 
       CoVariance = CalculateCoVariance(dryMatter), 
       NSD = Average - StandardDeviation, 
       PSD = Average + StandardDeviation, 
       NutrientTotal = 0 
      }); 

我不想創建另一種方法,並通過列表來計算NSD和PSD。

回答

1

創建NSD和PSD的特性:

public class SampleInformation 
{ 
    public string Nutrient { get; set; } 
    public decimal NutrientTotal { get; set; } 
    public int NoSamples { get; set; } 
    public decimal Average { get; set; } 
    public decimal StandardDeviation { get; set; } 
    public decimal CoVariance { get; set; } 
    public decimal PSD { get { return Average + StandardDeviation } } 
    public decimal NSD { get { return Average - StandardDeviation } } 
} 

那麼它將爲您計算,你可以再補充新的實例這樣的:

sampleInfoList.Add(new SampleInformation 
    { 
     Nutrient = "Dry Matter", 
     NoSamples = CalculateSampleCount(dryMatter), 
     Average = CalculateAverage(dryMatter), 
     StandardDeviation = CalculateStandardDeviation(dryMatter), 
     CoVariance = CalculateCoVariance(dryMatter), 
     NutrientTotal = 0 
    }); 
+0

我進一步擴展了這個問題:http://stackoverflow.com/questions/10771936/c-sharp-listobject – PAG

1

您可以嘗試;

public class SampleInformation 
{ 
    public string Nutrient { get; set; } 
    public decimal NutrientTotal { get; set; } 
    public int NoSamples { get; set; } 
    public decimal Average { get; set; } 
    public decimal StandardDeviation { get; set; } 
    public decimal CoVariance { get; set; } 
    public decimal PSD { get { return Average + StandardDeviation; } private set { } } 
    public decimal NSD { get{ return Average-StandardDeviation;} private set{} } 
}