c# – 在类的字段中动态搜索(每次都由其他字段)
发布时间:2020-12-16 01:35:44 所属栏目:百科 来源:网络整理
导读:在我的’Person’课程中,我有一些字段,如’firstname’,’lastname’,’nickname’等等. 我想编写动态搜索的代码,有时候是’firstname’,有时是’nickname’字段. 以常规方式,代码将是: If(SearchBy == "firstname") { Person result = ListOfPerson.Where(
在我的’Person’课程中,我有一些字段,如’firstname’,’lastname’,’nickname’等等.
我想编写动态搜索的代码,有时候是’firstname’,有时是’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 – 为什么我用这个背包问题求解器得到“未知信号11”?
- WSTOPSIG(状态)== 22&WTERMSIG(状态)== 9;这些数字来自
- c – SKPaymentQueue addPayment并不总是触发本机确认对话框
- 视频 – 如何在ffmpeg转换的flv中添加标题
- 常用正则表达式
- clob保存为本地xml文件,修改后上传
- c# – System.Net.Http.WebRequestHandler源代码在哪里?
- ruby – Sinatra不是以twitter gem开头的
- wxwidgets中对全局数据以xml文件的形式进行保存
- Dojo Spreadsheet Widget - 基于Ajax的Excel