【发布时间】:2020-04-01 22:12:13
【问题描述】:
你好我想问你有没有办法用LINQ同时计算平均值和标准偏差。
var players = new List<Player>
{
new Player { Name = "Alex", Team = "A", Score = 10 },
new Player { Name = "Anna", Team = "A", Score = 20 },
new Player { Name = "Luke", Team = "L", Score = 60 },
new Player { Name = "Lucy", Team = "L", Score = 40 },
};
var teamAverageScores =
from player in players
group player by player.Team into playerGroup
select new
{
Team = playerGroup.Key,
AverageScore = playerGroup.Average(x => x.Score),
};
我想在这个例子中计算分数的 STDev 并返回两个不同的列表,一个是平均值,一个是标准差。
AverageScore 的预期结果:
{ Team = "A", AverageScore = 15.0 }
{ Team = "L", AverageScore = 50.0 }
对于标准开发:
{ Team = "A", STDScore = 5.0 }
{ Team = "L", STDScore = 10.0 }
【问题讨论】:
-
你能展示你想要的结果吗?
-
我想要一个平均列表 { Team = "A", AverageScore = 15.0 } // { Team = "L", AverageScore = 50.0 } 和标准开发列表 { Team = " A", STDScore = 2.0 } // { Team = "L", STDScore = 3.0 } 这只是一个例子,不是精确值
-
您确定 STDDev 的值吗?我已经为你找到了一个解决方案,但在我的计算中,根据你的输入,我得到了 5 和 10 作为 STDDev。
-
是的,这就是我提到的,它仅用于示例,所以它不是正确的输出,但如果你有解决方案,我很高兴你可以分享它
标签: c# entity-framework linq