在教程之后,我构建了一个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#中的答案也很好用
答案 0 :(得分:0)
首先,这个答案显然尚未完成,所以请暂停任何downvotes直到我最终确定它。如果可以的话,我完全有意帮助OP,但是在这个时候我甚至无法开始帮助,因为所需的信息不存在。
@ISAE,您能否提供以下信息:
Items
是一个强类型的DataTable; Items
对象类型的类文件,最好是设计器文件(.xsc,.xsd和.xss)或者,如果项目可以放在GitHub上,那就更好了。如果你不能释放所有的代码,那么真的需要足够的知识来重新构建正在发生的事情。正如其中一条评论指出的那样,LINQ查询非常混乱,现在很难解剖。