计算相似id的分数总和
本文关键字:相似 id 计算 | 更新日期: 2023-09-27 18:22:51
我正在用C#语言在asp.net中创建一个网站。
我有9个清单。每个列表有2列:ID为int类型,Value为int16类型。ID是唯一的。
- 我想用一个特殊的公式来计算每个列表中每个ID的分数。例如,您认为这是计算所有分数后的结果:
id,列表编号,值,得分
100,1,2,10
300,1,2,9
200,1,4,11
100,2,3,10.5
200,2,3,10
- 我想计算每个id的分数总和。我的意思是,在我的例子中,id号100的最终分数是:10+10.5+
你建议我怎么做?我对第一阶段的想法是创建一个列表,并在其中存储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; }
}
}