【发布时间】:2021-01-03 14:34:05
【问题描述】:
工作代码。
double[] confirmingList = new double[] { -3, -2, -1 };
var Tdb = rDatas
.Select(d => new
{
TScore = (new List<double> {
d.T15Min, // Let this count .2
d.T30Min, // .25
d.T65Min, // .3
d.T130Min, // .4
d.T195Min, // .5
d.TDaily, // .8
d.TWeekly // 1
}).Count(c => confirmingList.Contains(c))
我想要的是按时间框架匹配和按属性加权进行聚合。有没有一些Linq Kung Fu可以做到这一点?我应该有一些我通过属性名称乘以权重的类吗?我怀疑聚合运算符中存在允许这样做的东西?
在通过修改或加权聚合值时,无法真正找到显示逻辑运算匹配的内容。
【问题讨论】:
-
我没有得到你的确切需求,你能改进你的解释/代码吗?
-
我有属性,如果这些属性与数组中的一个匹配,那么我想在总数中添加一个分数。附加值将在每个时间范围内按比例增加并添加到分数中。这是为了比较短的时间框架更重视较长的时间框架。
-
@SuperDave 请尝试与我们分享尽可能多的代码,以便能够在任何人的机器上重现问题。
-
由于我不知道答案,我无法真正发布代码。如前所述,我不只是想计算列表中匹配的项目,而是匹配它们并根据它们所处的时间范围对结果进行加权。上面的代码匹配并计算匹配项。然后如何为他们匹配的属性添加一个公式并汇总总数。
-
什么是“他们匹配的属性的公式”?也许如果您添加了一些实际数据和结果?权重在哪里?
标签: linq count aggregate weighting