title: Findout addition/Deletion/Changes through linq
body: <pre><code>DataTable dtprev = new DataTable();
  dtprev.Columns.Add("pref");
  dtprev.Columns.Add("field1");
  dtprev.Columns.Add("field2");
  dtprev.Columns.Add("field3");
  
  DataTable dtnew = dtprev.Clone();
  
  dtprev.Rows.Add("h20", "50", "100", "150");
  dtprev.Rows.Add("h20", "25", "501", "50");
  dtprev.Rows.Add("h20", "50", "50", "50");
  dtprev.Rows.Add("xyz", "1", "1", "35");
  dtprev.Rows.Add("abc", "1", "1", "1");
  dtprev.Rows.Add("abc", "2", "3", "4");
  dtprev.Rows.Add("aaa", "2", "2", "2");
  dtprev.Rows.Add("bbb", "1", "1", "1");
  dtprev.Rows.Add("bbb", "1", "2", "1");
  
  dtnew.Rows.Add("h20", "50", "100", "150");
  dtnew.Rows.Add("h20", "25", "501", "50");
  dtnew.Rows.Add("h20", "50", "503", "50");
  dtnew.Rows.Add("xyz", "1", "1", "36");
  dtnew.Rows.Add("xyz", "2", "3", "44");
  dtnew.Rows.Add("abc", "1", "1", "1");
  dtnew.Rows.Add("bbb", "2", "3", "4");
  dtnew.Rows.Add("ccc", "2", "2", "2");
  </code></pre>
  
  <p><strong>Expected Output</strong></p>
  
  <pre><code>"h20", "50", "100", "150" -- Matched
  "h20", "25", "501", "50"  -- Matched
  "h20", "50", "503", "50"  -- Changed
  "xyz", "1", "1", "36"     -- Changed
  "xyz", "2", "3", "44"     -- Addition
  "abc", "1", "1", "1"      -- Matched
  "bbb", "2", "3", "4"      -- Changed
  "ccc", "2", "2", "2"      -- Addition
  "abc", "2", "3", "4"      -- Deletion
  "aaa", "2", "2", "2"      -- Deletion
  "bbb", "1", "2", "1"      -- Deletion
  </code></pre>
  
  <p>I want to find to compare rows of these two datatables and want to find out new added rows/ deleted rows which exist in prev but not in new one and also find the out which rows are changed. I try but here "xyz" is changed and added new row. </p>
  
  <p>Can anyone please help me solve it through Linq.</p>