检查字典中列表值是否不为空

3
我使用以下的“字典”:
Dictionary<DateTime, List<string>> dictionary

我该如何简单地检查一个类型为字符串的值的 List 是否为非空


dictionary[yourDateTime].Any()的意思是“字典[你的日期时间].有任何元素吗?” - oerkelens
2
你想知道特定的一个是否为空,是否没有一个为空,还是全部都为空吗? - Yair Halberstadt
3个回答

7

尝试使用Linq

 Dictionary<DateTime,List<string>> dictionary = ...

 bool hasNotEmptyValues = dictionary
   .Any(pair => pair.Value != null && pair.Value.Any());

3
dictionary.Values.Any(list => list.Any())

还有一个问题,就是你如何看待list == null的情况。

如果你想把它当作一个空列表处理,则:

dictionary.Values.Any(list => list?.Any() ?? false)

如果不是:

dictionary.Values.Any(list => list?.Any() ?? true)

3
您可以按以下方式使用Linq。
var HasNonemptyList = dictionary.Values.Any(iList => iList.Count() > 0)

几乎和我的答案一样,尽管 Any()Count() > 0 更明确。如果是为了挤出最后一点性能,你可以使用本地的 List.Count 属性。 - huysentruitw

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接