2014-11-06 112 views
0
  DataTable dtdcnomissing = new DataTable(); 
     dtdcnomissing.Clear(); 
     List<int> Original = new List<int>(); 
     List<int> duplicate = new List<int>(); 
     dtdcnomissing = objRetailBAL.DCNOMissing(objRetailPL); 
     for (int i = 0; i <= dtdcnomissing.Rows.Count - 1; i++) 
     { 
      string value = dtdcnomissing.Rows[i]["missdcno"].ToString(); 
      string lastTwoChars = value.Substring(value.Length - 2); 
      int orgnal = Convert.ToInt32(value); 
      Original.Add(orgnal); 
      if (lastTwoChars.ToString() == "01" || lastTwoChars.ToString() == "51") 
      { 
       for (int j = Convert.ToInt32(value); j < Convert.ToInt32(value) + 50; j++) 
       { 
        int delete = Convert.ToInt32(j); 
        duplicate.Add(delete); 

       } 
      } 
     } 
     List<int> result = Original.Except(duplicate).ToList(); 

內容我有兩個列表比較兩個列表在C#

 var list1 = new List<int>{5,6,10,50,101,102,103,104,105,106,107,108,109,110.....150,251,255,274}; 
    var list2 = new List<int>{101,102,103,104,105,106,107,108,109,110,111,112......150,251,252,253,254,255,256,257,.......300}; 
    var duplicates = list1.Except(list2).ToList(); 

現在我想輸出像

duplicates={5,6,10,50,251,255,274} 

我一直在使用上面的代碼,但是,正確的輸出我沒有得到嘗試。請任何人幫助我。

+0

定義重複? – dotctor 2014-11-06 12:52:43

回答

0
var list1 = new List<int>{5,6,10,50,101,274}; 
var list2 = new List<int>{101,102,103,104}; 
var duplicates = list1.Except(list2).ToList(); 

結果:

duplicates = list{5,6,10,50,274}; 

這是你想要的嗎?

+0

看到我更新的問題 – santhosha 2014-11-06 11:29:32

+0

我發佈的代碼在列表1中獲取所有不存在於列表2中的itens,並將該列表轉換爲列表,重複列表將包含{5,6,10,50,274}列表,在list1中但不在第二個列表中的元素。 – ronniery 2014-11-06 11:33:34

+0

實際上我需要的是,我需要消除常見物品,並且還希望物品存在於list1中 – santhosha 2014-11-06 11:36:05

0
 DataTable dtdcnomissing = new DataTable(); 
     dtdcnomissing.Clear(); 
     List<int> Original = new List<int>(); 
     List<int> duplicate = new List<int>(); 
     List<int> result = new List<int>(); 
     dtdcnomissing = objRetailBAL.DCNOMissing(objRetailPL);   
     for (int i = 0; i <= dtdcnomissing.Rows.Count - 1; i++) 
     { 
      string value = dtdcnomissing.Rows[i]["missdcno"].ToString(); 
      string lastTwoChars = value.Substring(value.Length - 2); 
      int orgnal = Convert.ToInt32(value); 
      Original.Add(orgnal); 
      if (lastTwoChars.ToString() == "01" || lastTwoChars.ToString() == "51") 
      { 
       int rownum = i + 49; 
       if (dtdcnomissing.Rows.Count > i + 49) 
       { 
        int str = Convert.ToInt32(dtdcnomissing.Rows[rownum]["missdcno"].ToString()); 
        if (Convert.ToInt32(dtdcnomissing.Rows[rownum]["missdcno"].ToString()) == Convert.ToInt32(Convert.ToInt32(value) + 49)) 
        { 
         for (int j = Convert.ToInt32(value); j < Convert.ToInt32(value) + 50; j++) 
         { 
          int delete = Convert.ToInt32(j); 
          duplicate.Add(delete); 
         } 
        } 
       } 
      } 
      result = Original.Except(duplicate).ToList(); 
     } 

使用此代碼我得到了所需的輸出。