LINQ与DataTable.Select-如何获得相同的结果? [英] LINQ vs. DataTable.Select - How can I get the same results?
本文介绍了LINQ与DataTable.Select-如何获得相同的结果?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试将直接(断开连接)的DataSet.DataTable.Select重写为LINQ以进行文本搜索:
I'm trying to rewrite a direct (disconnected) DataSet.DataTable.Select to LINQ for a textual search:
string search = "ProductNo like '%" + searchpattern +
"%' OR ProductName like '%" + searchpattern +
"%' OR Description like '%" + searchpattern + "%'";
DataSetProducts.sk_productsRow[] dsp = (DataSetProducts.sk_productsRow[])dsProducts.sk_products.Select(search, sort);
这真的非常快.但是,如果我在LINQ中重新启用它:
This works really fast. However if I re-enact it in LINQ:
productlist = from prds in dsProducts.sk_products.AsEnumerable()
where (prds.Field<string>("productno").Contains(searchpattern) ||
prds.Field<string>("productname").Contains(searchpattern) ||
prds.Field<string>("description").Contains(searchpattern))
select prds;
由于文本操作,它真的变得很慢,并且返回的行要少得多. 如何以相同的速度获得相同的结果?表中只有约1000条记录.
It becomes really slow because of the text-operations, and will return far less rows. How can I achieve same results with the same speed? I have only ~1000 records in the table.
推荐答案
我自己从未使用过它,但也许 i4o-索引LINQ 可能有助于加快速度...
I've never used it myself, but perhaps i4o - Indexed LINQ might help speed things up...
这篇关于LINQ与DataTable.Select-如何获得相同的结果?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文