【发布时间】:2025-11-25 05:50:01
【问题描述】:
我对 foreach 子句有两个查询,它们使用过滤器从数据表中返回数据:
foreach (var currentDesignItem in designItemList.Select($"[Design Name] = '{designName}' AND [Project Number] = {legacyKey} AND [DesignTypeName] <> 'Change Order'"))
和
foreach (var item in designItemList.Select($"[Design Name] = '{designName}' AND [Project Number] = {legacyKey} AND [DesignTypeName] = 'Change Order'"))
如您所见,它是相同的查询,但过滤器不同 AND [DesignTypeName] = 'Change Order'.
所以我不想做两次查询,我试试
DataRow[] dtList = designItemList.Select($"[Design Name] = '{designName}' AND [Project Number] = {legacyKey}");
然后尝试在foreach中过滤为:
foreach (var currentDesignItem in dtList.Select("[DesignTypeName] <> 'Change Order'"))
但我收到一个错误:
方法 'Enumerable.Select(IEnumerable, Func)' 的类型参数不能 从用法推断。尝试指定类型参数 明确的。
【问题讨论】:
-
designItemList.Select是DataTable方法,dtList.Select是完全不同的方法:Enumerable.Where。