在C#列表中,如何找到重复项并添加属性值?

时间:2020-07-19 17:41:20

标签: c#

假设我有以下对象的列表

Player {id, score}

我需要找到重复的ID ,能够添加重复的玩家的得分,并返回没有重复的列表,加上分数。

Player1.id = 1 Player1.score = 5

Player1.id = 1 Player1.score = 6

Player2.id = 2 Player2.score = 4

预期结果:

Player1.id = 1 Player1.score = 11

Player2.id = 2 Player2.score = 4

3 个答案:

答案 0 :(得分:1)

您可以使用GroupBy,这是一个示例:

    var result = players.GroupBy(x => x.id)
                         .Select(x => new Player
                         {
                             id = x.Key,
                             score = x.Sum(y => y.score)
                         })
                         .ToArray();

答案 1 :(得分:1)

尝试一下:

kAudioUnitSubType_RemoteIO

答案 2 :(得分:1)

尝试以下步骤

  1. 按我分组
  2. 分组值内的总和

例如:。 PrayerList.groupby(X => x.id).select(g =>新祈祷{id = g.key,分数= g.sum(y => y.score)})。tolist()

相关问题