using System.Collections.Generic;
using System.Xml.Serialization;
using System.Data.DataSetExtensions;
public static void Main()
using (DataTable dt = new DataTable("MyDataTable"))
dt.Columns.Add("Id", typeof(int));
dt.Columns.Add("Name", typeof(string));
Random rnd = new Random();
for(int i = 0; i < 7; i++)
DataRow dr = dt.NewRow();
dr["Id"] = rnd.Next(1, 4);
dr["Name"] = "Row-" + (i + 1);
Console.WriteLine("All rows:");
PrintResults(dt.AsEnumerable());
var results = dt.AsEnumerable().GroupBy(x => (int)x["Id"]).Select(g => g.First());
Console.WriteLine("Distinct rows with linq:");
private static void PrintResults(IEnumerable<DataRow> rows)
Console.WriteLine(String.Format("Id: {0}, Name: {1}", (int)row["Id"], (string)row["Name"]));