我正在使用Linq提取数据的项目中工作。现在,我有一个场景,我必须检查字段值是否包含使用Contains()函数的给定字符串。

一切正常,但是当任何字段为null时,都会产生问题。


personData = personData.Where(x => x.FirstName.ToLower().Contains(q.ToLower()) || x.LastName.ToLower().Contains(q.ToLower())).Select(x => x).ToList();


在这里,当FirstName或LastName字段具有空值时,它将引发错误。

那么,如何克服这个问题呢?

最佳答案

您必须先检查是否需要的值是null,请尝试使用null-coalescing operator ...

personData = personData.Where(x => ((x.FirstName.ToLower() ?? "").Contains(q.ToLower())) ||  ((x.LastName.ToLower() ?? "").Contains(q.ToLower()))).Select(x => x).ToList();

关于c# - 如果linq中的字段值为null,如何使用Contains()函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41504832/

10-16 10:18