This should do what you need. I've used the HashSet instead of a list as you mentioned you wanted the unique itemset, which would be a set not a list
DataTable tblItems = new DataTable("MyItems");
tblItems.Columns.Add(new DataColumn("Id", typeof(string)));
tblItems.Columns.Add(new DataColumn("Itemset", typeof(string)));
tblItems.Rows.Add(new object[] { 1, "beer,mango, diaper, wafers"});
tblItems.Rows.Add(new object[] { 2, "bottle,laptop,mouse,keyboard" });
HashSet<string> items = new HashSet<string>();
foreach (DataRow dr in tblItems.Rows)
{
var itemSet = dr["Itemset"].ToString().Split(',').ToList();
itemSet.ForEach(i =>
{
if (!string.IsNullOrEmpty(i))
items.Add(i.Trim());
});
}
for (int i = 0; i < items.Count; i++ )
{
Console.WriteLine(string.Format("{0} - {1}", i+1, items.ElementAt(i)));
}