【发布时间】:2011-03-09 17:26:16
【问题描述】:
我有一个Dictionary<string, List<string>>
我想检查字典中的所有键在其对应列表中是否至少有一项
【问题讨论】:
我有一个Dictionary<string, List<string>>
我想检查字典中的所有键在其对应列表中是否至少有一项
【问题讨论】:
试试下面的
bool allPopulated = map.All(p => p.Value != null && p.Value.Count > 0);
【讨论】:
Any 如何更优雅?我很确定它们会同时短路,All 表达了 OP 的字面问题; Any 在功能上是相同的,但需要您翻转问题(“是否为空”而不是“全部填充”)。
Any 来解决这个问题相当于if (!IsNotReady) { ... } (负面条件总是让我觉得有点麻烦)。
您可以为此使用Enumerable.All 扩展方法(LINQ 扩展方法的一部分)。
bool allPopulated = yourDictionary.All(p => p.Value != null && p.Value.Count > 0);
【讨论】: