用于过滤列表的LINQ查询不返回任何内容

时间:2014-11-19 01:04:26

标签: vb.net linq-to-objects

在教程之后,我构建了一个LINQ查询来过滤对象列表:
Dim Query = From FilteredItem In Items, FiltSupp In FilteredItem.Suppliers Where ((SuppliersComboBox.SelectedItem.ToString = "All Suppliers" OrElse FiltSupp.CompanyName = SelectedSupplier) And (String.IsNullOrEmpty(TxtItemCode.Text) OrElse FilteredItem.ItemCode.ToString.Contains(TxtItemCode.Text)) And (String.IsNullOrEmpty(TxtName.Text) OrElse FilteredItem.Name.ToLower.Contains(TxtName.Text.ToLower)) And (String.IsNullOrEmpty(TxtPkgCost.Text) OrElse FilteredItem.PkgCost.ToString.Contains(TxtPkgCost.Text))) Select FilteredItem

问题是即使填充列表,查询也不会返回任何内容 在调试时,列表值是正确的(填充少量项),但查询不返回任何内容。我无法弄清楚出了什么问题,所以任何建议都将不胜感激! PS。我正在使用vb.net,但C#中的答案也很好用

1 个答案:

答案 0 :(得分:0)

首先,这个答案显然尚未完成,所以请暂停任何downvotes直到我最终确定它。如果可以的话,我完全有意帮助OP,但是在这个时候我甚至无法开始帮助,因为所需的信息不存在。

@ISAE,您能否提供以下信息:

  • 希望被查询的Items是一个强类型的DataTable; Items对象类型的类文件,最好是设计器文件(.xsc,.xsd和.xss)
  • 表单'设计器文件和代码隐藏。

或者,如果项目可以放在GitHub上,那就更好了。如果你不能释放所有的代码,那么真的需要足够的知识来重新构建正在发生的事情。正如其中一条评论指出的那样,LINQ查询非常混乱,现在很难解剖。