using System.Collections.Generic;
public static void Main()
List<string> input=new List<string>();
input.Add("001-HA-Manager");
input.Add("001-HA-Supervisor");
input.Add("001-HA-Validation");
input.Add("001-HA-DocumentReviewer");
input.Add("001-HA-ManagerReviewer");
input.Add("002-HA-Manager");
input.Add("002-HA-Supervisor");
input.Add("002-HA-Validation");
List<Lookup> lookup= new List<Lookup>();
foreach(var item in input)
Lookup lookupitem=new Lookup();
var tokenizeditem=item.Split('-');
lookupitem.ProjectCode=tokenizeditem[0];
lookupitem.Title=tokenizeditem[2];
var test= from p in lookup
group p.Title by p.ProjectCode into g
select new Project { ProjectCode = g.Key, Groups = g.ToList() };
var customDataObj = new { Project = test };
var jstring= JsonConvert.SerializeObject(customDataObj);
Console.WriteLine(jstring);
public string ProjectCode {get;set;}
public List<string> Groups {get;set;}
public string ProjectCode {get;set;}
public string Title {get;set;}