using System;
using System.Globalization;
using System.Linq;
using System.Collections.Generic;
public class Test
{
public static void Main()
{
string text = "Count([AssignedTo]) as [AssignedTo] , Sum([Billing Amount]) as [Billing Amount] , Max([Billing Rate]) as [Billing Rate] , Min([ExecutionDate]) as [ExecutionDate] , Average([HoursSpent]) as [HoursSpent] , [Project], [Sub-Project], [TaskName], [Vendor], [Work Classification], [Work Done], Count([WorkItemType]) as [WorkItemType] ";
var aggregates = new []{ "Count", "Sum", "Max", "Min", "Average"};
var all = text.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries)
.Select(col => new{ col, token = col.TrimStart().Split().First() })
.Where(x => x.token.Contains('(') && aggregates.Any(a => x.token.StartsWith(a)))
.Select(x => x.token);
foreach(string aggregateCol in all)
Console.WriteLine(aggregateCol);
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uR2xvYmFsaXphdGlvbjsKdXNpbmcgU3lzdGVtLkxpbnE7CnVzaW5nIFN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljOwoKcHVibGljIGNsYXNzIFRlc3QKewogICAgCgoJcHVibGljIHN0YXRpYyB2b2lkIE1haW4oKQoJewogICAgICAgICAgICBzdHJpbmcgdGV4dCA9ICJDb3VudChbQXNzaWduZWRUb10pIGFzIFtBc3NpZ25lZFRvXSAsIFN1bShbQmlsbGluZyBBbW91bnRdKSBhcyBbQmlsbGluZyBBbW91bnRdICwgTWF4KFtCaWxsaW5nIFJhdGVdKSBhcyBbQmlsbGluZyBSYXRlXSAsIE1pbihbRXhlY3V0aW9uRGF0ZV0pIGFzIFtFeGVjdXRpb25EYXRlXSAsIEF2ZXJhZ2UoW0hvdXJzU3BlbnRdKSBhcyBbSG91cnNTcGVudF0gLCBbUHJvamVjdF0sIFtTdWItUHJvamVjdF0sIFtUYXNrTmFtZV0sIFtWZW5kb3JdLCBbV29yayBDbGFzc2lmaWNhdGlvbl0sIFtXb3JrIERvbmVdLCBDb3VudChbV29ya0l0ZW1UeXBlXSkgYXMgW1dvcmtJdGVtVHlwZV0gIjsKICAgICAgICAgICAgdmFyIGFnZ3JlZ2F0ZXMgPSBuZXcgW117ICJDb3VudCIsICJTdW0iLCAiTWF4IiwgIk1pbiIsICJBdmVyYWdlIn07CiAgICAgICAgICAgIHZhciBhbGwgPSB0ZXh0LlNwbGl0KG5ld1tdIHsgJywnIH0sIFN0cmluZ1NwbGl0T3B0aW9ucy5SZW1vdmVFbXB0eUVudHJpZXMpCiAgICAgICAgICAgICAgICAuU2VsZWN0KGNvbCA9PiBuZXd7IGNvbCwgdG9rZW4gPSBjb2wuVHJpbVN0YXJ0KCkuU3BsaXQoKS5GaXJzdCgpIH0pCiAgICAgICAgICAgICAgICAuV2hlcmUoeCA9PiB4LnRva2VuLkNvbnRhaW5zKCcoJykgJiYgYWdncmVnYXRlcy5BbnkoYSA9PiB4LnRva2VuLlN0YXJ0c1dpdGgoYSkpKQogICAgICAgICAgICAgICAgLlNlbGVjdCh4ID0+IHgudG9rZW4pOwogICAgICAgICAgICBmb3JlYWNoKHN0cmluZyBhZ2dyZWdhdGVDb2wgaW4gYWxsKQogICAgICAgICAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoYWdncmVnYXRlQ29sKTsKCX0KfQ==