将 linq 查询与 stringBuilder 结合使用

发布于 2024-12-10 05:05:48 字数 385 浏览 0 评论 0原文

我想在 LINQ 查询中创建动态 where 子句。我有一个字符串构建器 sb 具有附加值 Country=null ||城市=空|| State=null 和一个数据表,其中包含名为“名称”、“姓氏”、“国家/地区”、“城市”、“州”的列。我想将 sb 值与数据表列进行比较并获取空/空行。

所以我想要一个像这样的 LINQ 查询:

var query = from p in datatable.AsEnumerable()
            where sb.tostring() // ------------error
            select p 

但它返回一个错误。我该如何解决这个问题?

I want to create dynamic where clause in a LINQ query. I have one stringbuilder sb having append values Country=null || City=null || State=null and one datatable that has column named Name, Lastname, Country, City, State. I want to compare sb values with datatable columns and get null / empty rows.

So I want a LINQ query like this:

var query = from p in datatable.AsEnumerable()
            where sb.tostring() // ------------error
            select p 

but it returns an error. How can I solve this problem?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

天涯离梦残月幽梦 2024-12-17 05:05:48

您可以使用 Dynamic Linq

var query = datatable.Where("Country==null || City==null || State==null");

您需要下载 C# 文件并将其包含在链接中,然后添加:

using System.Linq.Dynamic;

You can use Dynamic Linq

var query = datatable.Where("Country==null || City==null || State==null");

You'll need to download and include the C# file in the link and add:

using System.Linq.Dynamic;
安静被遗忘 2024-12-17 05:05:48

在 LINQ 中你不能这样做。动态 LINQ 可能会对您有所帮助,但这可能不是最适合您的解决方案。

为什么要将查询创建为字符串?您可以动态构建查询本身。看看 PredicateBuilder

You can't do that in LINQ. Dynamic LINQ might help you, but that's probably no the best solution for you.

Why are you creating the query as a string? You can just build the query itself dynamically. Have a look at PredicateBuilder.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文