为什么使用 GROUP BY 后列表中所有对象的一个字段设置为零
本文关键字:一个 字段 设置 对象 BY GROUP 列表 为什么 | 更新日期: 2023-09-27 18:34:28
在下面的代码中,val.support中的每个对象都有name,supportamount和GFP,所以一切都很好。当构建支持者对象的积极支持者列表(积极支持者列表位于类玩家的字段上(时,列表中所有支持者的 GFP 字段为 0。为什么以及我应该怎么做才能解决这个问题?
for (int i = 0; i < result["modelData"]["rows"].Count; i++)
{
row = result["modelData"]["rows"][i];
if (row["f"][0]["v"] != null && row["f"][1]["v"] != null)
{
if (dictionary.ContainsKey((string)row["f"][0]["v"]))
val.supporters.Add(new Supporter { name = (string)row["f"][0]["v"], supportAmount = (double)row["f"][1]["v"], GFP = dictionary[(string)row["f"][0]["v"]] });
}
}
val.positiveSupporters = val.supporters.GroupBy(x => x.name).Select(x => new Supporter { name = x.Key, supportAmount = x.Sum(y => y.supportAmount)}).ToList();
或者更好的是,在流程的第二部分获取 GFP。这似乎是基于分组键的查找。
var positiveSupporters = supporters.GroupBy(x => x.name).Select(x => new Supporter { name = x.Key, supportAmount = x.Sum(y => y.supportAmount), GFP = dictionary[x.Key] }).ToList();
如评论中所述,我没有选择 GFP,它被设置为默认值 0。鉴于每个名称在我的问题中都有一个固定的 GFP,我使用 firsr(( 来选择 GFP:
val.positiveSupporters = val.supporters.GroupBy(x => x.name).Select(x => new Supporter { name = x.Key, supportAmount = x.Sum(y => y.supportAmount),GFP = x.First().GFP}).ToList();