【问题标题】:C# LINQ Joining And where statement not workingC# LINQ Joining And where 语句不起作用
【发布时间】:2010-03-05 21:17:23
【问题描述】:

我试图在我的 where 语句中使用订单 ID 的集合,为什么我不能让它工作?

List<int> orders   = new List<int>(){1,2,3,4,5};

DataTable dtTable1 = getOrders();
DataTable dtTable2 = getOrderDetails();
var results = from a in dtTable1.AsEnumerable()
              join b in dtTable2.AsEnumerable() on a.Field<int>("ID") equals b.Field<int>("ID")
              where orders.Contains(b.Field<int>("OrderID"))
              select a;

【问题讨论】:

  • 不要说“没用”。问题是什么?它不编译?它给出了运行时错误?它不会产生预期的结果(在这种情况下,有什么区别)?

标签: c# asp.net linq join datatable


【解决方案1】:

猜测:

on a.Field<int>("ID") equals b.Field<int>("OrderID") 

【讨论】:

  • 没有注意到我正在使用 Int 数组与表 b 中的字段进行比较。其中 orders.Contains(b.Field("OrderID"))
【解决方案2】:

语法对我来说看起来不错。而且由于它们是值类型,我希望比较能够正常工作。您确定为您的特定数据选择了正确的列吗?也许您可以告诉我们您的表格中的值以及您希望看到的内容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-02-02
    • 2011-07-06
    • 1970-01-01
    • 2023-03-27
    • 2011-09-16
    • 2021-01-12
    • 2014-11-17
    相关资源
    最近更新 更多