【发布时间】:2017-01-06 11:34:16
【问题描述】:
我正在做一个项目,我使用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 字段具有空值时,它会引发错误。
那么,我该如何克服这个问题呢?
【问题讨论】:
-
添加一个子句检查
x.FirstName是否为空..? -
你用的是什么版本的c#?如果 c#6 那么空条件是一个选项。
-
我正在使用 C# 4.5 @Nkosi
-
如果 q 为空怎么办?你是怎么处理的?
-
@stomy, q 是函数的参数,所以我们可以先检查 if(string.IsNullOrEmpty(q)) {}