计算相似id的分数总和

本文关键字:相似 id 计算 | 更新日期: 2023-09-27 18:22:51

我正在用C#语言在asp.net中创建一个网站。

我有9个清单。每个列表有2列:ID为int类型,Value为int16类型。ID是唯一的。

  1. 我想用一个特殊的公式来计算每个列表中每个ID的分数。例如,您认为这是计算所有分数后的结果:

id,列表编号,值,得分

100,1,2,10

300,1,2,9

200,1,4,11

100,2,3,10.5

200,2,3,10

  1. 我想计算每个id的分数总和。我的意思是,在我的例子中,id号100的最终分数是:10+10.5+

你建议我怎么做?我对第一阶段的想法是创建一个列表,并在其中存储id、列表名称、值和分数(如上表所示),但我不知道如何执行第二阶段。

如果你能帮助我,我将不胜感激。非常感谢

计算相似id的分数总和

我已经为您的需求实现了控制台应用程序代码。这是工作代码。

首先,它按ID进行分组,然后将每组ID的分数相加最终的结果是ID&此ID的分数总和。

using System;
using System.Linq;
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            var records = new[] {
                                new Records{ID=100,ListNum=1,Value=2,Score=10},
                                new Records{ID=300,ListNum=1,Value=2,Score=9},
                                new Records{ID=200,ListNum=1,Value=4,Score=11},
                                new Records{ID=100,ListNum=2,Value=3,Score=10.5},
                                new Records{ID=200,ListNum=2,Value=3,Score=10}
                               };
            var idScoreSumDictionary = records
                             .GroupBy(rec => rec.ID)
                             .ToDictionary(
                                 rec => rec.Key, 
                                 rec => rec.Sum(x => x.Score)
                             );
           foreach (var item in idScoreSumDictionary)
           {
                Console.WriteLine("ID: {0}",item.Key);
                Console.WriteLine("Its Score Sum: {0}",item.Value);
           }
        }
    }
    class Records
    {
        public int ID { get; set; }
        public int ListNum { get; set; }
        public int Value { get; set; }
        public double Score { get; set; }
    }
}