2017-12-14 11 views
0

こんにちはを通じて私はフォーマット

legacy     subid        converted  licPart   count 
Ent 100 EP Lic E-LTU 7ks7gp-qc42sn-g7zk0q-7pzmb7-xdp6yb NL AC CE E-LTU LIC-CP-EN-100 100 
Ent 100 EP Lic E-LTU 7ks7gp-qc42sn-g7zk0q-7pzmb7-xdp6yb NL OB USR E-LTU LIC-CP-EN-100 100 
Ent 100 EP Lic E-LTU 7ks7gp-qc42sn-g7zk0q-7pzmb7-xdp6yb NL OG EP E-LTU LIC-CP-EN-100 100 
Ent 100 EP Lic E-LTU 7ks7gp-qc42sn-g7zk0q-7pzmb7-xdp6yb NL AC CE E-LTU LIC-CP-EN-100 100 
Ent 100 EP Lic E-LTU 7ks7gp-qc42sn-g7zk0q-7pzmb7-xdp6yb NL OB USR E-LTU LIC-CP-EN-100 100 
Ent 100 EP Lic E-LTU 7ks7gp-qc42sn-g7zk0q-7pzmb7-xdp6yb NL OG EP E-LTU LIC-CP-EN-100 100 
Ent 1K EP Lic E-LTU  7ks7gp-qc42sn-g7zk0q-7pzmb7-xdp6yb NL AC CE E-LTU LIC-CP-EN-1K 1000 
Ent 1K EP Lic E-LTU 7ks7gp-qc42sn-g7zk0q-7pzmb7-xdp6yb NL OB USR E-LTU LIC-CP-EN-1K 1000 
Ent 1K EP Lic E-LTU 7ks7gp-qc42sn-g7zk0q-7pzmb7-xdp6yb NL OG EP E-LTU LIC-CP-EN-1K 1000 

以下、このような2 datatable1を持っていると私は(マージこの

ACCount OBCount OGCount  legacy 
    50  25  25   Ent 100 EP Lic E-LTU 
    25  25  50   Ent 100 EP Lic E-LTU 
    375  375  250  Ent 1K EP Lic E-LTU 

結果テーブルのような別のdatatable2を持っているすべてをループすることにより、2つのDataTableをマージとdatatable1とdatatable2)私はこの下のようなテーブルを探しています

legacy     subid        converted  licPart   count 
Ent 100 EP Lic E-LTU 7ks7gp-qc42sn-g7zk0q-7pzmb7-xdp6yb NL AC CE E-LTU LIC-CP-EN-100 50 
Ent 100 EP Lic E-LTU 7ks7gp-qc42sn-g7zk0q-7pzmb7-xdp6yb NL OB USR E-LTU LIC-CP-EN-100 25 
Ent 100 EP Lic E-LTU 7ks7gp-qc42sn-g7zk0q-7pzmb7-xdp6yb NL OG EP E-LTU LIC-CP-EN-100 25 
Ent 100 EP Lic E-LTU 7ks7gp-qc42sn-g7zk0q-7pzmb7-xdp6yb NL AC CE E-LTU LIC-CP-EN-100 25 
Ent 100 EP Lic E-LTU 7ks7gp-qc42sn-g7zk0q-7pzmb7-xdp6yb NL OB USR E-LTU LIC-CP-EN-100 25 
Ent 100 EP Lic E-LTU 7ks7gp-qc42sn-g7zk0q-7pzmb7-xdp6yb NL OG EP E-LTU LIC-CP-EN-100 50 
Ent 1K EP Lic E-LTU  7ks7gp-qc42sn-g7zk0q-7pzmb7-xdp6yb NL AC CE E-LTU LIC-CP-EN-1K 375 
Ent 1K EP Lic E-LTU 7ks7gp-qc42sn-g7zk0q-7pzmb7-xdp6yb NL OB USR E-LTU LIC-CP-EN-1K 375 
Ent 1K EP Lic E-LTU 7ks7gp-qc42sn-g7zk0q-7pzmb7-xdp6yb NL OG EP E-LTU LIC-CP-EN-1K 250 

最初のテーブルと最後のテーブルの違いがカウント列であることを確認したら、同じレガシーのテーブル1のカウントをテーブル2のAcCount、OBCount、OGcountとマージする必要があります。

いずれかのアイデアや提案私には非常に喜ばれるでしょう。事前に

多くのおかげで...

+0

あなたは任意のサンプル出力を提供することはできますか? – Mohammad

+0

@Mohammad最後のテーブル(結果テーブル)を見てください。違いは最後のカラム(カウント)です –

+0

テーブル2の同じレガシーの2つのエントリがあります。どのカウントをマージするのですか? – Mohammad

答えて

1

編集:LINQを使用する方法

を変換し、次の操作を行うことができます追加:

public class Table1 
    { 
     public string legacy, subid, converted, licPart; 
     public int count; 
    } 
    public class Table2 
    { 
     public int ACCount, OBCount, OGCount; 
     public string legacy; 
    } 

    private int Convert(string converted, int ACCount, int OBCount, int OGCount) 
    { 
     return converted.StartsWith("NL AC ") ? ACCount : 
      converted.StartsWith("NL OB ") ? OBCount : OGCount; 
    } 

    private void JoinTables() 
    { 
     List<Table1> table1 = new List<Table1>(); 
     List<Table2> table2 = new List<Table2>(); 

     var result = from t1 in table1 
        join t2 in table2 on t1.legacy equals t2.legacy 
        select new Table1 
        { 
         legacy = t1.legacy, 
         converted = t1.converted, 
         licPart = t1.licPart, 
         subid = t1.subid, 
         count = Convert(t1.converted, t2.ACCount, t2.OBCount, t2.OGCount) 
        }; 
    } 
+0

申し訳ありません私はすべてのカウント(ACCount、OBCount、OGCount)を検討し、対応する列とマージする必要があります..ここで私は見ることができます1つのカウント(すなわち)ACCount –

+0

あなたはどのようにそれらを考慮しますか?あなたの基準は何ですか?そして、それを結合の中に挿入することができます。 –

+0

私は上記の表3の形式の結果表を質問の中で表現する必要があります。 –