Lamda表达式分组计算

    xiaoxiao2025-03-13  12

    根据不同的term 计算每项的权重 即, weight/sum(weight)           Result r = new Result(); r.altid="001"; r.term=21; r.weight = 0.1; list.Add(r); Result r2 = new Result(); r2.altid = "002"; r2.term = 21; r2.weight = 0.2; list.Add(r2); Result r3 = new Result(); r3.altid = "003"; r3.term = 63; r3.weight = 0.2; list.Add(r3); var ListTerm = list.GroupBy(t => t.term).Select(g => (new { term = g.Key, SumWgt = g.Sum(s => s.weight) }));//按照term计算总的weight var listGroup = list.Join(ListTerm, a => a.term, l => l.term, (a, l) => new { altid = a.altid, term = l.term, wgt = a.weight,wi=a.weight/l.SumWgt }).ToList();//term内连接项,wi=weight除以各自的sum(weight) foreach (var l in listGroup) { Console.WriteLine(l.term + ": "+ l.wi); }
    转载请注明原文地址: https://ju.6miu.com/read-1296987.html
    最新回复(0)