首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过循环遍历行合并两个数据

通过循环遍历行合并两个数据
EN

Stack Overflow用户
提问于 2017-12-14 06:19:42
回答 1查看 64关注 0票数 0

嗨,我有两个像这样的datatable1格式

代码语言:javascript
复制
 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

代码语言:javascript
复制
 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合并),我需要如下表所示

代码语言:javascript
复制
 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合并到相同的遗留文件中。

有谁能提出对我来说很好的想法和建议吗?

非常感谢..。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-14 07:20:39

编辑:添加转换方法

使用LINQ,您可以执行以下操作:

代码语言:javascript
复制
    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)
                     };
    }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47807026

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档