using System.Data.DataSetExtensions;
using System.Collections.Generic;
public static void Main()
DataTable dt = new DataTable();
dt.Columns.Add("Name", typeof(string));
dt.Columns.Add("Address", typeof(string));
AddRow(dt, "companies", "addresses");
AddRow(dt, "companies", "bids");
AddRow(dt, "companies", "commitments");
AddRow(dt, "companies", "evaluations");
AddRow(dt, "companies", null);
var result = dt.AsEnumerable().GroupBy(x => x.Field<string>("Name"))
Address = x.Where(z => z.Field<string>("Address") != null)
.Select(z => z.Field<string>("Address")).ToList()
string jsonResult = JsonConvert.SerializeObject(result);
Console.WriteLine(jsonResult);
private static void AddRow(DataTable dt,string name, object add)
DataRow row1 = dt.NewRow();