使用 Enumerable.Contains 方法进行空项检查

Using Enumerable.Contains method for null item checking

假设我有一个非常简单的 IEnumerable,如下所示:

IEnumerable<string> foo = new[] { "Apple", null, "Orange" };

我想检查它是否包含 null 项。根据我在 Google 中发现的内容,我可以按如下方式执行此操作:

bool containsNull = foo.Any(item => item == null);

Enumerable.Contains方法呢?以下内容对我来说似乎很明显,但我从来没有这样看过:

bool containsNull = foo.Contains(null);

导致使用 Enumerable.Any 方法的先前表达式是否有任何问题?

的确如此,在大多数情况下 Contains(null) 都可以。但是 ArgumentNullException 存在漏洞。一个例子可以是:

string foo = "foo";
bool containsNull = foo.Contains(null); //throws exception

在您的情况下,您已经将通用类型设置为 string,因此可以安全地使用 Contains

"Contains" 运算符检查指定元素是否存在于集合中并且 returns 一个布尔值。

"Any" 检查是否有任何元素满足给定条件?在下面的示例中,Any 操作用于检查任何学生是否是青少年。

在这种情况下最好使用 "ANY"

你可以参观https://www.tutorialsteacher.com/linq/linq-quantifier-operators