public static void Main()
Product[] ProArr = new Product[3];
ProArr[0] = new Product()
{Id = 1, Name = "Name1", Color = "Green", Size = new string[]{"XL"}};
ProArr[1] = new Product()
{Id = 1, Name = "Name1", Color = "Blue", Size = new string[]{"XL"}};
ProArr[2] = new Product()
{Id = 3, Name = "Name2", Color = "Red", Size = new string[]{"S"}};
var result2 = ProArr.GroupBy(p => new
Id = x.Key.Id, Name = x.Key.Name, Color = String.Join(",", x.Select(c => c.Color)), Size = x.Key.Size.First().ToString()}
foreach (var result in result2)
Console.WriteLine(result);