将 linq 查询与 stringBuilder 结合使用
我想在 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以使用 Dynamic Linq
您需要下载 C# 文件并将其包含在链接中,然后添加:
You can use Dynamic Linq
You'll need to download and include the C# file in the link and add:
在 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
.