using System.Collections;
using System.Collections.Generic;
public static void Main()
DataTable dt = new DataTable();
dt.Columns.Add("ID", typeof (int));
dt.Columns.Add("Name", typeof (string));
dt.Columns.Add("Result", typeof (string));
dt.Columns.Add("other", typeof (string));
dt.Rows.Add(1, "John", "1,2,3,4,5", "b");
dt.Rows.Add(2, "Mary ", "5,6,7,8", "d");
dt.Rows.Add(3, "John", "6,7,8,9", "a");
DataTable dtRsult = dt.Clone();
var distinctRows = dt.DefaultView.ToTable(true, "ID").Rows.OfType<DataRow>().Select(k => k[0] + "").ToArray();
foreach (Int32 id in distinctRows)
var rows = dt.Select("ID = '" + id + "'");
foreach (DataRow row in rows)
value += row["Result"] + ",";
dtRsult.Rows.Add(id, value, other);
foreach (DataRow dr in dtRsult.Rows)
Console.WriteLine(dr[0] + " --- " + dr[1] + "---- " + dr[2]);