繁体   English   中英

Linq比较两个数据表和筛选数据

[英]Linq to Compare two datatables and Filter data

我有两个dataTables,

     Id     Name
      1     Alex
      2     Hiro

我的第二个数据表是

      Field   |  1   |  1_Value  |  2     |  2_Value
      Salary  | 123.4|  Good     |  245   |  Bad
      CTC     | 25.4 |  Bad      |  300   |  good

第一个表ID值1、2是第二个表的列。 我想使用Id来比较两个使用Id-列关系的表,并且我期望的过滤输出应该看起来像

      [{
        "Id" : 1 , "Name": "Alex",
         "data" : [123.4, 25.4] ,"values":["Good" ,"Bad"]},
        {
        "Id" : 2 , "Name": "Hiro",
         "data" : [245, 300] ,"values":["Bad","Good" ]}
        ]

我的代码尝试使用foreach循环,如

        if (ds.Tables[1].Rows.Count > 0)
                {
                    var comparisonDetail = (from DataRow dataRow in ds.Tables[1].Rows
                                            select new cls.MyBaseClass()
                                            {
                                                ID = Convert.ToInt64(dataRow["ID"]),
                                                Name= Convert.ToString(dataRow["Name"])  
                                            }

                                            ).ToList();
                    foreach (var vId  in  comparisonDetail)
                    {
                       foreach(var vRow in ds.Tables[2].Rows)
                       {
            vId.Data = vRow.value.

                       } 
                    }

我如何使用C#linq实现此目的? 帮助将不胜感激

您要使用join( join子句(C#参考)

using(var c = DataBaseConnection())
{
 var data=from r in c.firstTable
          join st in c.SecondTable on r.Id equals st.FieldId
          select new
                 { 
                   // create return object
                 };
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM