C# 列表<对象>

本文关键字:对象 列表 | 更新日期: 2023-09-27 18:35:31

有一个类:

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 = 平均值 + 标准偏差和NSD = 平均值 - 标准偏差

我的代码如下:

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。

C# 列表<对象>

创建 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
    });

你可以试试;

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{} }
}