using System;
using System.Linq;
using System.Collections.Generic;
class Channel
{
public String Name { get; set; }
public TimeSpan Durarion { get; set; }
}
public class Test
{
public static void Main()
{
var array = new[]{
"Channel 1, 01:05:36",
"Channel 2, 02:25:36",
"Group 1, 22:25:36",
"Network, 41:40:09",
"Loss of, 03:21:17",
"Loss of, 01:13:28",
"Channel 1, 04:25:36",
"Channel 2, 00:25:36",
};
var channelGroups = array.Select(s =>
{
var tokens = s.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
return new Channel()
{
Name = tokens[0],
Durarion = new TimeSpan(
int.Parse(tokens[1].Split(':')[0]), // hours
int.Parse(tokens[1].Split(':')[1]), // minutes
int.Parse(tokens[1].Split(':')[2])) // seconds
};
})
.GroupBy(c => c.Name)
.Select(g => new
{
Channel = g.Key,
Count = g.Count(),
Average = g.Average(c => c.Durarion.TotalMinutes)
});
foreach(var group in channelGroups)
{
Console.WriteLine("Channel:[{0}] Count:[{1}] Average:[{2}]"
,group.Channel,group.Count,group.Average);
}
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uTGlucTsKdXNpbmcgU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWM7CgpjbGFzcyBDaGFubmVsCnsKICAgIHB1YmxpYyBTdHJpbmcgTmFtZSB7IGdldDsgc2V0OyB9CiAgICBwdWJsaWMgVGltZVNwYW4gRHVyYXJpb24geyBnZXQ7IHNldDsgfQp9CgoKcHVibGljIGNsYXNzIFRlc3QKewoJcHVibGljIHN0YXRpYyB2b2lkIE1haW4oKQoJewoJdmFyIGFycmF5ID0gbmV3W117CiAgICAiQ2hhbm5lbCAxLCAwMTowNTozNiIsCiAgICAiQ2hhbm5lbCAyLCAwMjoyNTozNiIsCiAgICAiR3JvdXAgMSwgMjI6MjU6MzYiLAogICAgIk5ldHdvcmssIDQxOjQwOjA5IiwKICAgICJMb3NzIG9mLCAwMzoyMToxNyIsCiAgICAiTG9zcyBvZiwgMDE6MTM6MjgiLAogICAgIkNoYW5uZWwgMSwgMDQ6MjU6MzYiLAogICAgIkNoYW5uZWwgMiwgMDA6MjU6MzYiLAp9OwoKdmFyIGNoYW5uZWxHcm91cHMgPSBhcnJheS5TZWxlY3QocyA9Pgp7CiAgICB2YXIgdG9rZW5zID0gcy5TcGxpdChuZXdbXSB7ICcsJyB9LCBTdHJpbmdTcGxpdE9wdGlvbnMuUmVtb3ZlRW1wdHlFbnRyaWVzKTsKICAgIHJldHVybiBuZXcgQ2hhbm5lbCgpCiAgICB7CiAgICAgICAgTmFtZSA9IHRva2Vuc1swXSwKICAgICAgICBEdXJhcmlvbiA9IG5ldyBUaW1lU3BhbigKICAgICAgICAgICAgaW50LlBhcnNlKHRva2Vuc1sxXS5TcGxpdCgnOicpWzBdKSwgIC8vIGhvdXJzCiAgICAgICAgICAgIGludC5QYXJzZSh0b2tlbnNbMV0uU3BsaXQoJzonKVsxXSksICAvLyBtaW51dGVzCiAgICAgICAgICAgIGludC5QYXJzZSh0b2tlbnNbMV0uU3BsaXQoJzonKVsyXSkpICAvLyBzZWNvbmRzCiAgICB9Owp9KQouR3JvdXBCeShjID0+IGMuTmFtZSkKLlNlbGVjdChnID0+IG5ldwp7CiAgICBDaGFubmVsID0gZy5LZXksCiAgICBDb3VudCA9IGcuQ291bnQoKSwKICAgIEF2ZXJhZ2UgPSBnLkF2ZXJhZ2UoYyA9PiBjLkR1cmFyaW9uLlRvdGFsTWludXRlcykKfSk7CgogICAgICAgICAgIGZvcmVhY2godmFyIGdyb3VwIGluIGNoYW5uZWxHcm91cHMpCiAgICAgICAgICAgewogICAgICAgICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKCJDaGFubmVsOlt7MH1dIENvdW50Olt7MX1dIEF2ZXJhZ2U6W3syfV0iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsZ3JvdXAuQ2hhbm5lbCxncm91cC5Db3VudCxncm91cC5BdmVyYWdlKTsKICAgICAgICAgICB9Cgl9Cn0=