gpt4 book ai didi

c# - 检查 lambda 表达式中的 null - linq

转载 作者:太空狗 更新时间:2023-10-30 00:32:48 25 4
gpt4 key购买 nike

我正在尝试为高级搜索编写一个表达式。但是,我需要检查每个属性是否为 null,否则会抛出错误。

我在下面包含了没有空检查的表达式。

使用 jQuery 数据表输出结果。

filteredPeople = unitOfWork.PeopleRepository.Get().Where(c =>
IdSearchable && c.personID.ToString().Contains(param.sSearch.ToLower())
|| surnameSearchable && c.Surname.ToLower().Contains(param.sSearch.ToLower())
|| firstNameSearchable && c.FirstName.ToLower().Contains(param.sSearch.ToLower())
|| genderSearchable && c.Gender.ToLower().Contains(param.sSearch.ToLower())
));

最佳答案

尝试下面,我基本上将所有单独的条件检查包装在括号内,以进一步提高可读性,并确保编译器解释该巨大逻辑时您不会得到任何奇怪的结果。

filteredPeople = unitOfWork.PeopleRepository.Get()
.Where(c => (IdSearchable
&& c.personID != null
&& c.personID.ToString().Contains(param.sSearch.ToLower()))
|| (surnameSearchable
&& c.Surname != null
&& c.Surname.ToLower().Contains(param.sSearch.ToLower()))
|| (firstNameSearchable
&& c.FirstName != null
&& c.FirstName.ToLower().Contains(param.sSearch.ToLower()))
|| (genderSearchable
&& c.Gender != null
&& c.Gender.ToLower().Contains(param.sSearch.ToLower())));

关于c# - 检查 lambda 表达式中的 null - linq,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15406679/

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