使用字典对象

Using dictionary object

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

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

您的方法是依靠魔术串进行中继。最好为结果使用单独的类型,例如:

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

然后return它:

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

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

public (double Monthly, double Annual) ArithmeticMean(IEnumerable<double> ReturnsList)
{
    ...
    return (Monthly: returnList, Annual: returnList * Math.Pow(12, 0.5));
}