嗨,我有两个像这样的datatable1格式
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 我还有一个像这样的datatable2
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对于结果表(与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 如果您观察到第一个表和最后一个表是count列之间的差异,我需要将表1 count与表2 AcCount、OBCount、OGcount合并到相同的遗留文件中。
有谁能提出对我来说很好的想法和建议吗?
非常感谢..。
发布于 2017-12-14 07:20:39
编辑:添加转换方法
使用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)
};
}https://stackoverflow.com/questions/47807026
复制相似问题