У меня есть метод (AlphaCalcResult), который должен возвращать несколько значений. Каждый forloop имеет некоторую логику, которая присваивает значение полю List. Затем я хотел бы вернуть объект результата с двумя значениями, созданными из двух циклов, описанных ниже. Новое для разработки C# и проблемы с синтаксисом.C# возвращает несколько значений в объекте
Как я могу получить оператор возврата в моем коде ниже?
public AlphaCalcResult CalculateAlpha(AlphaCalcParam param)
{
AlphaCalcResult result = new AlphaCalcResult
{
portfolios = new List<Portfolio>()
};
// Lists Portfolios & Settings
var portfolioListItem = param.portfolios.portfolioHoldings;
var scoreListItem = param.settings.grossAlphas;
// 1. CALCULATE FUND ALPHA
for (var i = 0; i<portfolioListItem.Count; i++)
{
portfolioListItem[i].fundRating = i;
for (var j = 0; j<scoreListItem.Count; j++)
{
scoreListItem[j].fundRating = j;
if(i == j)
{
portfolioListItem[i].fundAlpha = scoreListItem[j].grossAlpha - portfolioListItem[i].fundExpenseRatio;
}
}
}
//2. CALCULATE PORTFOLIO ALPHA
var portfolioAlphaResult = param.portfolios.portfolioAlpha;
for (var i =0; i<portfolioListItem.Count; i++)
{
portfolioAlphaResult = portfolioListItem[i].fundWeight * portfolioListItem[i].fundAlpha;
};
// populate result
return result;
}
Вы никогда не заполняете результат, вы создаете пустой список, выполняете нагрузку, которая никогда не добавляется в этот список, и возвращая пустой список – bizzehdee
, можете ли вы направить меня в правильном направлении, пожалуйста? –
Я думал, что сделал .... Вы вычисляете 'portfolioAlphaResult', но никогда не добавляете его в' result.portfolios'. – bizzehdee