按值筛选字典,其中值是使用LINQ的字符串列表



我有一本字典,结构如下:Dictionary<string, List<string>>

例如,我想检索所有具有大于3个字符的字符串值的条目,这就是我尝试过的:

mydictionary.Where(s => s.Value.Where(word => word.Length == 3).ToList().Count > 0) as Dictionary<string, List<string>>

但我得到的是一个空值,我做错了什么?

您可以利用Any方法而不是WhereCount:

var result = mydictionary
.Where(pair => pair.Value.Any(word => word.Length > 3)) // longer than 3 chars
.ToDictionary(pair => pair.Key, pair => pair.Value);

请注意,您应该在ToDictionary的帮助下实体化,而不是投射as Dictionary<string, List<string>>

最新更新