c# - C# 在 lambda 表达式中使用动态字符串或查询
问题描述
我正在尝试使用动态 where 条件编写 ac# lambda 表达式,并尝试了解 where 条件中的内容类型。如何在 where 子句中动态调用该内容?
我在这里以字符串为例
string query1 = "p=>p.id == 1 && p.name==\"abc\" ";
string query2 = "p=>p.id == 2 && p.name==\"def\" ";
//Normal Lambda Expression:
var details = _db.MyTable.Where(p=>p.id == 1 && p.name=="abc")
//Trying to check these if it works
var details1 = _db.MyTable.Where(query1)
var details2 = _db.MyTable.Where(query2)
解决方案
Lambda 表达式可以在其范围内使用变量,因此您可以将其写为:
int queryId = 1;
string queryName = "abc";
var details = _db.MyTable.Where(p=>p.id == queryId && p.name== queryName);
通过这种方式,您可以动态确定和是什么queryID
并将queryName
它们传递给 lambda 表达式。我还假设您打算检查等于==
而不是分配 with =
。
推荐阅读
- python - 在 python 中使用 word_tokenize 时出现 keyError
- php - 数组到字符串避免第一个逗号?
- html - CSS - 背景位置:中心中心;使图像消失
- windows - docker window容器使用multistage如何复制软件
- c# - List 的项目元素作为匿名对象的属性
- azure - ARM 模板部署无用的错误,包括“域名'...' 请求无效。不支持资源标签。”
- python - ModuleNotFoundError: No module named... Jupyter Notebooks
- php - 在注册表单上插入 -> 更新另一个表中的相应值
- angular - 在 Angular 拦截器类中调用异步函数
- r - 如何修复ggplot中断开的折线图