2017-07-17 12 views
0

良い一日コーダーマッチング値

私が知りたいのですが、データテーブルの行にリストコレクションから値を一致させる方法があります。現在私はこれを持っている、それは動作しません。 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(新しいオブジェクト[] {a、b、c、d、e})を使います。 – jdweng

+0

ありがとう@ジンバット。どのようにそれについて行くための任意の提案? – 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

ありがとうございます。それは演算子 '>'は、 'メソッドグループ'と '' 'のタイプのオペランドに適用することはできません – Drizzybass

+0

まあそれは方法です、私は()固定...を忘れました – Jimbot

+0

それはまだコードを想定しているので、正しく動作していない – Drizzybass

0

あなたがより多くの行を持っている場合、私はあなたが探しているのか分からないがテーブルよりもリストの方がいいですか?知りません。

あなたは、LINQを使用したいが、私はそれは同じだと思う場合は、次の

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