You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C# LINQ:如何检测字符串数组含Error或元素为空/Null

解决方案

首先需要注意:你的原代码myStringArray.Contains("Error", StringComparer.InvariantCultureIgnoreCase)是判断数组中是否存在精确等于"Error"(忽略大小写)的元素,而非包含"Error"文本的元素。如果你的真实需求是检测元素中包含"Error"(忽略大小写),需要用Any方法配合字符串判断。

下面分两种场景处理你的需求:

场景1:判断数组中是否存在「包含Error的元素」或「空/Null元素」

只要满足其中一种情况就返回true,用逻辑或||组合两个判断:

bool hasErrorOrNullOrEmpty = myStringArray.Any(s => 
    string.IsNullOrEmpty(s) || 
    s.IndexOf("Error", StringComparison.InvariantCultureIgnoreCase) >= 0);

场景2:判断数组中是否同时存在「包含Error的元素」和「空/Null元素」

两种情况都满足才返回true,用逻辑与&&组合:

bool hasErrorAndNullOrEmpty = 
    myStringArray.Any(s => s.IndexOf("Error", StringComparison.InvariantCultureIgnoreCase) >= 0) &&
    myStringArray.Any(s => string.IsNullOrEmpty(s));

如果你的原需求确实是精确匹配"Error"(忽略大小写)而非包含,只需把上面的s.IndexOf(...) >= 0替换为string.Equals(s, "Error", StringComparison.InvariantCultureIgnoreCase)即可:

精确匹配时的场景1:

bool hasErrorOrNullOrEmpty = myStringArray.Any(s => 
    string.IsNullOrEmpty(s) || 
    string.Equals(s, "Error", StringComparison.InvariantCultureIgnoreCase));

精确匹配时的场景2:

bool hasErrorAndNullOrEmpty = 
    myStringArray.Any(s => string.Equals(s, "Error", StringComparison.InvariantCultureIgnoreCase)) &&
    myStringArray.Any(s => string.IsNullOrEmpty(s));

内容的提问来源于stack exchange,提问作者gymcode

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 18:59:58