c# - 如果在 linq 中字段值为空,如何使用 Contains() 函数

标签 c# linq

我正在做一个项目,我使用 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?.Contains(substring) ??假的

从 C# 6 开始,您可以使用 null 条件运算符,这大大简化了一些查询。您可以阅读有关此主题的更多信息 here

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

相关文章:

c# - 使用动态 linq 查询聚合函数 Count()

c# - 过滤表中不包含 List<string> 中的项目的 DataTable

C# Linq IQueryable 选择扁平化嵌套对象列表

c# - 在 LINQ 中仅将某些列返回到 JSON

c# - 使用正则表达式连接 linq

c# - DevExpress 元素创建后如何更改主题?

c# - 在 WPF 中筛选 DataGrid

c# - 我应该选择什么数据库?

c# - .NET 中基于屏幕键盘的组合框建议

c# - LINQ 分组依据与左连接结果