大家好我有两个这样的datatable1格式
#set ($roleLocalServiceUtil = $serviceLocator.findService("com.liferay.portal.service.RoleLocalService"))
#if ($roleLocalServiceUtil.hasUserRole($user.getUserId(),$user.getCompanyId(), "<YOUR ROLE NAME>", true))
我有另一个像这样的数据表2
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
和结果表(与datatable1和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
如果您观察到第一个和最后一个表之间的区别是计数列,我需要将表1计数与表2的AcCount,OBCount,OGcount合并为相同的遗产..
任何人都可以提出任何想法和任何对我非常感激的建议。
非常感谢...
答案 0 :(得分: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)
};
}