c#Linq删除重复的项目并计算平均值 [英] c# Linq remove duplicate items and calculate average values

查看:326
本文介绍了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删除重复的项目并计算平均值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

    查看全文
    登录 关闭
    扫码关注1秒登录
    发送“验证码”获取 | 15天全站免登陆