【问题标题】:Join in LINQ Query加入 LINQ 查询
【发布时间】:2013-02-08 11:17:02
【问题描述】:

我正在使用以下 LINQ 查询从数据表中获取数据

 var callBetweenNodesDetail = from r in dtRowCallBetweenNodes.AsEnumerable()
                                       where ((r.Field<string>("F1") == VerSelected1) && (r.Field<string>("F2") == VerSelected2))
                                       select r;

现在我想加入另一个数据表 dtRowFile,其中包含两个字段“名称”和“F2”,其中字段“F2”将与数据表 dtRowCallBetweenNodes 中的“F10”匹配以在结果集中获取“名称”

【问题讨论】:

标签: c# linq


【解决方案1】:

这会有帮助吗:

var ret = from p in Table1.AsEnumerable()
      join q in Table2.AsEnumerable() on p.Field<int>("ID") equals q.Field<int>("ID") into UP
      from q in UP.DefaultIfEmpty()
      select new
      {
          ID = p.Field<int>("ID"),
          Type = p.Field<string>("Type"),
          Part = q.Field<int>("Part"),
          Quantity = q.Field<int>("Quantity")
      };

【讨论】:

    【解决方案2】:
    var rowFileNames = from   r1 in dtRowCallBetweenNodes.AsEnumerable()
                       join   r2 in dtRowFile.AsEnumerable()
                       on     r1.Field<string>("F10") equals r2.Field<string>("F2")
                       where  r1.Field<string>("F1") == VerSelected1 
                       &&     r1.Field<string>("F2") == VerSelected2
                       select r2.Field<string>("Name");
    

    Cross-Table Queries (LINQ to DataSet)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-25
      • 1970-01-01
      • 2017-02-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多