using System.Collections.Generic;
public static void Main()
var data = new List<UserData>{
new UserData{ UserId = 1, RoleId = 1, FirstName = "Ted"},
new UserData{ UserId = 1, RoleId = 2, FirstName = "Ted"},
new UserData{ UserId = 1, RoleId = 3, FirstName = "Ted"},
new UserData{ UserId = 2, RoleId = 1, FirstName = "Ted"},
new UserData{ UserId = 2, RoleId = 3, FirstName = "Ted"},
var formattedData = data.GroupBy(x=>x.UserId)
UserId = x.FirstOrDefault().UserId,
FirstName = x.FirstOrDefault().FirstName,
Roles = x.Select(k=>k.RoleId)
var json = JsonConvert.SerializeObject(formattedData, Formatting.Indented);
public int UserId{get;set;}
public int RoleId{get;set;}
public string FirstName{get;set;}