使用字典对象

问题描述 投票:-2回答:1

我正在使用Math.Net库在c#中开发一个计算库。我在库中有几个方法可以接收IEnumerable双列值。我需要计算年度和月度值并将其返回给调用者方法。有人可以告诉我这是否是正确的做法。我选择使用字典对象

public Dictionary<string, double> ArithmeticMean(IEnumerable<double> ReturnsList)
{
    Dictionary<string, double> arithmethicMean = new Dictionary<string, double>();
    var returnList = ReturnsList.Mean();
    arithmethicMean.Add("Monthly", returnList);
    arithmethicMean.Add("Annual", returnList * Math.Pow(12, 0.5));

    return arithmethicMean;
}
c#
1个回答
2
投票

你的方法正在传递魔术弦。最好为结果使用单独的类型,例如:

public class ArithmeticMeanResult
{
    public double Monthly;
    public double Annual;
}

然后返回它:

return new ArithmeticMeanResult()
{
    Monthly = returnList,
    Annual = returnList * Math.Pow(12, 0.5)
};

如果您使用的是C#7,那么您可以使用Tuples:

public (double Monthly, double Annual) ArithmeticMean(IEnumerable<double> ReturnsList)
{
    ...
    return (Monthly: returnList, Annual: returnList * Math.Pow(12, 0.5));
}
© www.soinside.com 2019 - 2024. All rights reserved.