LINQ与DataTable.Select-如何获得相同的结果? [英] LINQ vs. DataTable.Select - How can I get the same results?

查看:88
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆