gpt4 book ai didi

c# - 在类的字段中动态搜索(每次通过其他字段)

转载 作者:行者123 更新时间:2023-11-30 14:19:26 24 4
gpt4 key购买 nike

在我的“Person”类中,我有一些字段,如“firstname”、“lastname”、“nickname”等。

我想编写代码来动态搜索,有时按“名字”字段,有时按“昵称”字段。

按照常规方式,代码将是:

If(SearchBy == "firstname") 
{
Person result = ListOfPerson.Where(p => p.firstname== "exp").FirstOrDefault();
}
else If(SearchBy == "nickname")
{
Person result = ListOfPerson.Where(p => p.nickname== "exp").FirstOrDefault();
}

但是我想写的代码应该是这样的:(每次保存if)

Object someVariable  = "firstname";

Person result = ListOfPerson.Where(p => p.someVariable == "exp").FirstOrDefault();

谁能知道这是否可能?

最佳答案

这样的事情怎么样:

Func<Person, bool> searchDelegate;

switch (searchMode){
case "firstname":
searchDelegate = (p => p.firstname == searchValue);
break;
case "lastname":
searchDelegate = (p => p.lastname == searchValue);
break;
case "nickname":
searchDelegate = (p => p.nickname == searchValue);
break;
default:
throw new Exception("searchMode is invalid");
}

return ListOFPerson.Where(seachDelegate).FirstOrDefault();

关于c# - 在类的字段中动态搜索(每次通过其他字段),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2721700/

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