2012-05-27 76 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{} } 
}