本文介绍了c#Linq删除重复的项目并计算平均值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

例如,我有一个对象列表(属性:名称和值)

$ ul

  • item1 20;

  • item2 30;

  • item1 50;



  • 我想要结果:


    • item1 35(20 + 50)/ 2

    • item2 30



    我该怎么做?

    谢谢 b
    $ b

    抱歉,基于item.Name。

    解决方案
      var results = 
    from kvp in source
    group kvp由kvp.Key.ToUpper()转换为g
    选择新的
    {
    Key = g.Key,
    Value = g.Average(kvp => kvp.Value)
    }



    <$ p code> var results = source.GroupBy(c => c.Name)
    .Select(c => new(c.Key,c.Average(d => d 。值)));


    For example I have a list of objects (properties: Name and value)

    • item1 20;
    • item2 30;
    • item1 50;

    I want the result:

    • item1 35 (20+50)/2
    • item2 30

    How can I do this?

    thanks

    sorry guys, duplicate is based on item.Name.

    解决方案
    var results =
      from kvp in source
      group kvp by kvp.Key.ToUpper() into g
      select new
      {
        Key= g.Key,
        Value= g.Average(kvp => kvp.Value)
      }
    

    or

    var results = source.GroupBy(c=>c.Name)
                      .Select(c => new (c.Key, c.Average(d=>d.Value)));
    

    这篇关于c#Linq删除重复的项目并计算平均值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

    10-27 16:15