using System;
using System.Linq;
using System.Collections.Generic;
public class Test
{
public struct Proc
{
public int ID { get; set; }
public string Value { get; set; }
}
public static void Main()
{
var procList = new List<Proc>() {
new Proc{ID=50,Value="process:3333"},new Proc{ID=50,Value="phone:xxxx"},
new Proc{ID=51,Value="process:2222"},new Proc{ID=51,Value="phone:yyyy"},
};
var procIdGroups = procList
.GroupBy(p => p.ID)
.Select(g => new Proc
{
ID = g.Key,
Value = string.Join(",", g.Select(p => p.Value).ToArray())
})
.ToList();
foreach(var proc in procIdGroups)
Console.WriteLine("{0} {1}", proc.ID, proc.Value);
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uTGlucTsKdXNpbmcgU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWM7CgpwdWJsaWMgY2xhc3MgVGVzdAp7CiAgICBwdWJsaWMgc3RydWN0IFByb2MKICAgIHsKICAgICAgICBwdWJsaWMgaW50IElEIHsgZ2V0OyBzZXQ7IH0KICAgICAgICBwdWJsaWMgc3RyaW5nIFZhbHVlIHsgZ2V0OyBzZXQ7IH0KICAgIH0KICAgIAoJcHVibGljIHN0YXRpYyB2b2lkIE1haW4oKQoJewogICAgICAgdmFyIHByb2NMaXN0ID0gbmV3IExpc3Q8UHJvYz4oKSB7IAogICAgICAgICAgICBuZXcgUHJvY3tJRD01MCxWYWx1ZT0icHJvY2VzczozMzMzIn0sbmV3IFByb2N7SUQ9NTAsVmFsdWU9InBob25lOnh4eHgifSwKICAgICAgICAgICAgbmV3IFByb2N7SUQ9NTEsVmFsdWU9InByb2Nlc3M6MjIyMiJ9LG5ldyBQcm9je0lEPTUxLFZhbHVlPSJwaG9uZTp5eXl5In0sCiAgICAgICAgfTsKICAgICAgICB2YXIgcHJvY0lkR3JvdXBzID0gcHJvY0xpc3QKICAgICAgICAuR3JvdXBCeShwID0+IHAuSUQpCiAgICAgICAgLlNlbGVjdChnID0+IG5ldyBQcm9jCiAgICAgICAgewogICAgICAgICAgICBJRCA9IGcuS2V5LAogICAgICAgICAgICBWYWx1ZSA9IHN0cmluZy5Kb2luKCIsIiwgZy5TZWxlY3QocCA9PiBwLlZhbHVlKS5Ub0FycmF5KCkpCiAgICAgICAgfSkKICAgICAgICAuVG9MaXN0KCk7CiAgICAgICAgCiAgICAgICAgZm9yZWFjaCh2YXIgcHJvYyBpbiBwcm9jSWRHcm91cHMpCiAgICAgICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKCJ7MH0gezF9IiwgcHJvYy5JRCwgcHJvYy5WYWx1ZSk7Cgl9Cn0=