我需要將串列的平均值計算到字典中,我開始使用這種語法來訪問雙串列并獲取平均值,但是編譯器給出了一個錯誤,我是新的字典,正確的語法如何訪問每個雙串列并獲得平均值?
這是我的代碼示例:
Dictionary<string, List<double>> SignalValues =
new Dictionary<string, List<double>>();
var dSignalAvg = SignalValues
.Where(x => x.Key == "Key")
.Average(x => x.Value);
太感謝了!
uj5u.com熱心網友回復:
如果您確定字典中存在特定鍵,那么您可以簡單地執行以下操作:
var dSignalAvg = SignalValues["Key"].Average();
如果字典沒有等于“Key”的鍵,上面的代碼將拋出例外。如果你想先檢查,你可以TryGetValue這樣使用:
double dSignalAvg = 0;
if (SignalValues.TryGetValue("Key", out List<double> signalList))
{
dSignalAvg = signalList.Average();
}
uj5u.com熱心網友回復:
像這樣?
給定這樣的字典:
Dictionary<string,List<double>> values = new Dictionary<string,List<double>>();
獲取特定鍵的平均值很容易:
double avgValue = values
.Where( x => x.Key == "Key")
.Select( x => x.Value.Average() )
.FirstOrDefault()
;
或者,如果您想將字典簡化為平均值字典,只需:
Dictionary<string,double> avgValues = values
.ToDictionary(
x => x.Key ,
x => x.Value.Average()
)
;
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/509944.html
標籤:C#。网林克字典
上一篇:僅當名稱不同時才復制檔案
下一篇:自定義類與C#類共享名稱
