using System.Data.DataSetExtensions;
public static void Main()
DataTable dbSourceTable = new DataTable();
dbSourceTable.Columns.Add("QuestionID", typeof (int));
dbSourceTable.Columns.Add("QuestionNo", typeof (int));
dbSourceTable.Columns.Add("Answer", typeof (string));
DataTable uiAnswerTable = new DataTable();
uiAnswerTable.Columns.Add("QuestionID", typeof (int));
uiAnswerTable.Columns.Add("Answer", typeof (string));
dbSourceTable.Rows.Add(new object[]{1, 1, "a"});
dbSourceTable.Rows.Add(new object[]{2, 1, "b"});
dbSourceTable.Rows.Add(new object[]{3, 1, "c"});
dbSourceTable.Rows.Add(new object[]{4, 1, "d"});
dbSourceTable.Rows.Add(new object[]{5, 1, "e"});
uiAnswerTable.Rows.Add(new object[]{1, "a"});
uiAnswerTable.Rows.Add(new object[]{1, "c"});
uiAnswerTable.Rows.Add(new object[]{1, "e"});
from dt1row in dbSourceTable.AsEnumerable()join dt2row in uiAnswerTable.AsEnumerable()on dt1row.Field<string>("Answer")equals dt2row.Field<string>("Answer")into table3
from t3row in table3.DefaultIfEmpty()select new
QuestionID = dt1row.Field<string>("QuestionID"), QuestionNo = dt1row.Field<string>("QuestionNo"), Answer = dt1row.Field<string>("Answer"), ishecked = t3row != null ? "Yes" : null
var newList = LeftJoin.ToList();
foreach (var items in newList)
Console.WriteLine(items);