2017-07-17 73 views
0

好日子打码机匹配值列表中的集合和值的DataTable行

我想知道有没有从列表中收集匹配的值到数据表行的方式。目前我有这个,这是行不通的。 Ref_Number是名单收集和dtRefNumDataTable

int count = Ref_Number.Count > dtRefNum.Rows.Count ? dtRefNum.Rows.Count : Ref_Number.Count; 
for (int i = 0; i < count; i++) 
{ 
    if (Ref_Number[i].ToString().Trim().Contains(dtRefNum.Rows[i].ToString().Trim())) 
     { 
      var refnum = Ref_Number[i].ToString().Trim(); 
      var fsdfsdf = dtRefNum.ToString().Trim(); 
     } 
     else if (Ref_Number[i].ToString().Trim() == dtRefNum.Rows[i].ToString().Trim()) 
     { 

     } 
+0

您可能需要使用LINQ – Jimbot

+0

如果指数相同,则使用索引而不是名称。有一个可以在数据表中使用的datamapping属性,但使用索引号(列号)可能更容易。我通常使用dt.Rows.Add(new object [] {a,b,c,d,e}); – jdweng

+0

谢谢@Jimbot。任何建议如何去做呢? – Drizzybass

回答

0

你可能想试试这个,

//assumming Ref_Number is List<string> 
    for (int i = 0; i < dtRefNum.Rows.Count; i++) 
    { 
     if ((Ref_Number.Where(rn => rn.ToLower().Trim() == dtRefNum.Rows[i].ToString().ToLower().Trim()).Count()) > 0) 
      { 
       var refnum = Ref_Number[i].ToString().Trim(); 
       var fsdfsdf = dtRefNum.ToString().Trim(); 
      } 
    } 
+0

谢谢@Jimbot的回复。它没有工作运算符'>'不能用于'方法组'类型的操作数,并且ínt' – Drizzybass

+0

那么这是一种方法,我忘了()...固定 – Jimbot

+0

它仍然跳过if语句,所以我假设代码没有正常工作 – Drizzybass

0

我不知道你在寻找,但如果你有更多的行列表比在表中,没关系?我不知道。

如果你想使用LINQ,但我认为它是相同的:

int i=0; 
Ref_Number.foreach(oh => 
    { 
     if (oh[i].ToString().Trim() = dtrefnum[i].ToString().Trim(); //or use contains whateveryouwant 
      ... 
    }