【问题标题】:Confirming all Keys in a dictionary have populated Values确认字典中的所有键都填充了值
【发布时间】:2011-03-09 17:26:16
【问题描述】:

我有一个Dictionary<string, List<string>>

我想检查字典中的所有键在其对应列表中是否至少有一项

【问题讨论】:

    标签: c# .net .net-3.5 c#-3.0


    【解决方案1】:

    试试下面的

    bool allPopulated = map.All(p => p.Value != null && p.Value.Count > 0);
    

    【讨论】:

    • @Adam:我很确定你的答案一开始没有空检查。
    • 我投了这个票,因为他把它缩短到没有滚动条的程度(这很丑)。
    • @Dan:虽然确实如此,但这甚至不是 OP 问题的明确要求。
    • @Dan:你说得对,真的不值得讨论; Meta 上有足够多的关于随机排序的问题,即同等投票的答案收到的随机排序,而不用担心它。 @Marc:出于好奇,Any 如何更优雅?我很确定它们会同时短路,All 表达了 OP 的字面问题; Any 在功能上是相同的,但需要您翻转问题(“是否为空”而不是“全部填充”)。
    • @Marc:我必须在这个问题上支持 Adam。对我来说,使用Any 来解决这个问题相当于if (!IsNotReady) { ... } (负面条件总是让我觉得有点麻烦)。
    【解决方案2】:

    您可以为此使用Enumerable.All 扩展方法(LINQ 扩展方法的一部分)。

    bool allPopulated = yourDictionary.All(p => p.Value != null && p.Value.Count > 0);
    

    【讨论】:

    • 一切都好,结局好,嗯? ;)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多