using System.Collections.Generic;
static string[] Acumula(string[] arr)
var acum = new Dictionary<string, int>();
foreach (string item in arr)
int.TryParse(split[1], out int result);
if (acum.ContainsKey(split[0]))
acum[split[0]] = acum.GetValueOrDefault(split[0], 0) + result;
return acum.Select(kvp => kvp.Key + ":" + kvp.Value).ToArray();
static string[] AcumulaC(string[] arr)
var acum = new Dictionary<char, int>();
foreach (string item in arr)
int.TryParse(split[1], out int result);
if (acum.ContainsKey(split[0][0]))
acum[split[0][0]] = acum.GetValueOrDefault(split[0][0], 0) + result;
acum[split[0][0]] = result;
return acum.Select(kvp => kvp.Key + ":" + kvp.Value).ToArray();
static void Main(string[] args)
string[] arr = { "A:3", "A:5", "B:2", "B:-1" };
string[] res = Acumula(arr);
Console.WriteLine("[{0}]", string.Join(",", res));
string[] resC = AcumulaC(arr);
Console.WriteLine("[{0}]", string.Join(",", resC));