第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

動態(tài)雙精度的 Linq 平均值

動態(tài)雙精度的 Linq 平均值

C#
拉風(fēng)的咖菲貓 2021-11-21 10:16:34
我有一個動態(tài)結(jié)果集,其中包含一個鍵值 double(但編譯器仍將其視為動態(tài)結(jié)果)。我試圖計算這個的累積平均值,但無法弄清楚正確的轉(zhuǎn)換或如何調(diào)用 LinqAverage()方法的特定重載。Average<dynamic>(Func<dynamic, int> selector)當(dāng)我非常確定我需要該Average<dynamic>(Func<dynamic, double> selector)版本時,它始終會嘗試調(diào)用該版本。Average()和Sum()方法上的智能感知向我展示了編譯器正在選擇<dynamic, int>版本。如何指定使用double版本?這是我嘗試過的事情的迭代及其相應(yīng)錯誤的一個很好的示例。在這一點上,我覺得我已經(jīng)想盡組合,并使用或不Cast<double>()和Convert.ToDouble(),我能想到的。// ## filled with values from DB query, but here with examples ##var result = new List<dynamic>() { new { myDouble = 0.123 }, new { myDouble = 0.456 } }; var cumulativeAvg = new List<double>();更新我的結(jié)果集原來有一個隱藏的null值,這導(dǎo)致了錯誤:var result = new List<dynamic>() {    new { myDouble = 0.123 }    , new { myDouble = 0.456 }    , new { myDouble = null }}; 對于以下所有循環(huán),錯誤為: 無法將類型“double”隱式轉(zhuǎn)換為“int”for(var i = 0; i < result.Count; i++)    cumulativeAvg.Add(result.Take(i + 1).Average(r => Convert.ToDouble(r.myDouble)));for(var i = 0; i < result.Count; i++)    cumulativeAvg.Add(result.Take(i + 1).Select(r => Convert.ToDouble(r.myDouble)).Average());for(var i = 0; i < result.Count; i++)    cumulativeAvg.Add(result.Take(i + 1).Select(r => Convert.ToDouble(r.myDouble)).ToList().Average());for(var i = 0; i < result.Count; i++)    cumulativeAvg.Add(result.Take(i + 1).Sum(r => Convert.ToDouble(r.myDouble)) / (i + 1));對于以下所有循環(huán),錯誤為: 指定的強(qiáng)制轉(zhuǎn)換無效。for(var i = 0; i < result.Count; i++)    cumulativeAvg.Add(result.Take(i + 1).Select(r => Convert.ToDouble(r.myDouble)).Cast<double>().Average());for(var i = 0; i < result.Count; i++)    cumulativeAvg.Add(result.Take(i + 1).Cast<double>().Select(r => Convert.ToDouble(r.myDouble)).Average());for(var i = 0; i < result.Count; i++)    cumulativeAvg.Add(result.Select(r => Convert.ToDouble(r.myDouble)).Cast<double>().Take(i + 1).Average());
查看完整描述

1 回答

?
湖上湖

TA貢獻(xiàn)2003條經(jīng)驗 獲得超2個贊

如果您強(qiáng)制動態(tài)的強(qiáng)制轉(zhuǎn)換為雙倍而不是讓.ToDouble方法自己找到適當(dāng)?shù)念愋?,它就會起作用。相反,做一個明確的演員:

for(var i = 0; i < result.Count; i++)
    cumulativeAvg.Add(result.Take(i + 1).Average(r => (double)r.myDouble));


查看完整回答
反對 回復(fù) 2021-11-21
  • 1 回答
  • 0 關(guān)注
  • 190 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號