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

如何简便检查C#中Dictionary<string,string>是否包含至少一个非空值?

无需显式循环检查字典是否存在非空值的方法

当然有更简洁的实现方式!你可以借助LINQ的Any()方法来完成这个检查,完全不用自己写foreach循环,代码可读性也更强。

实现代码

bool hasNonEmptyValue = productsDictionary.Values.Any(v => !string.IsNullOrEmpty(v));

原理说明

  • productsDictionary.Values会获取字典中所有值的集合,返回一个ICollection<string>类型的序列。
  • LINQ的Any()方法会遍历这个序列(内部实现还是遍历,但不需要你手动写循环逻辑),只要找到第一个满足!string.IsNullOrEmpty(v)的元素,就会立即返回true——和你原来的循环逻辑效率完全一致,都是找到符合条件的元素就停止遍历。

关于ContainsValue的疑问

你提到的ContainsValue()方法确实没法直接用来实现这个需求,因为它的作用是检查字典中是否存在某个特定的具体值(比如ContainsValue("apple")是检查是否有值等于"apple"),而我们要找的是“所有非空值”这个范围的元素,没有单一的特定值可以传给它,所以这个方法在这里派不上用场。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 12:27:39