gpt4 book ai didi

c# - 如何将用户输入的字符串作为字段名传递以访问对象中的字段?

转载 作者:太空狗 更新时间:2023-10-29 23:14:42 26 4
gpt4 key购买 nike

我正在使用 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com