作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在使用 linq 从数据库中进行一些搜索。我有多个列名称,例如国家/地区、姓名、电话号码...
现在我已经创建了一个下拉列表并将用户选择的数据作为参数“searchedField”传递给我的 Controller 方法。现在,如果我输入一个“国家”,我希望代码是
entries = entries.Where(s => s.country.Contains(searchString));
如果用户选择了“名字”
entries = entries.Where(s => s.name.Contains(searchString));
请原谅这个相当不合理的例子,因为我总是可以只复制行和创建案例,但我想知道是否有一种方法可以利用反射之类的东西将字符串转换为“代码”以访问字段?
String searchedField = "name"
...
entries = entries.Where(s => s.searchedField.Contains(searchString));
这是我的第一个问题,谢谢!
最佳答案
您可以使用 Dynamic Linq .
entries = entries
.Where(
string.Format(
"{0} = '{1}'",
searchedField,
searchString
)
);
注意:根据您需要添加或不添加引号的字段类型。
关于c# - 如何将用户输入的字符串作为字段名传递以访问对象中的字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24426699/
我是一名优秀的程序员,十分优秀!