using System.Data.DataSetExtensions;
public static void Main()
DataTable dtSnapshot = new DataTable();
dtSnapshot.Columns.Add("Company");
dtSnapshot.Columns.Add("PackSlip");
dtSnapshot.Columns.Add("PackLine");
dtSnapshot.Columns.Add("VendorNum");
dtSnapshot.Columns.Add("PurPoint");
dtSnapshot.Columns.Add("Selected", typeof(bool));
dtSnapshot.Columns.Add("Received");
dtSnapshot.Columns.Add("SysRowID");
DataRow dr = dtSnapshot.NewRow();
DataRow dr2 = dtSnapshot.NewRow();
dr2["PackSlip"] = "abce";
dtSnapshot.Rows.Add(dr2);
var serializedString = Newtonsoft.Json.JsonConvert.SerializeObject(dtSnapshot);
dynamic dynJson = Newtonsoft.Json.JsonConvert.DeserializeObject(serializedString);
DataTable dtJson = Newtonsoft.Json.JsonConvert.DeserializeObject<DataTable>(serializedString);
var rows = dtJson.AsEnumerable().Where(x => x.Field<bool>("Selected") == true).FirstOrDefault();
bool z = rows.Field<bool>("Selected");
var rows2 = dtJson.AsEnumerable().Where(x => x.Field<bool?>("Selected") == true).ToList();
bool y = rows2[0].Field<bool>("Selected");
foreach (var item in rows2)
Console.WriteLine(item.Field<string>("PackSlip"));