C#计算字典中字符串值包含某个字符串的项目数

时间:2015-04-17 11:35:53

标签: c# dictionary

这只是一个快速的问题,是否有更简单/更快捷的方法来获取字典中所有元素的计数,其中字符串值包含某个字符串。即所有元素都存储在值中有“test”的位置。 显然,我可以遍历所有元素并获取值,然后检查它是否包含值,如果它确实增加了一个计数器,但我只是想知道是否有更容易/更快的方法。

提前致谢

1 个答案:

答案 0 :(得分:6)

你可以使用LINQ,它在CPU周期方面不会更快但更具可读性:

int count = dict.Count(kv => kv.Value.Contains("test"));

如果你想忽略这种情况,你必须使用IndexOf

int count = dict.Count(kv => kv.Value.IndexOf("test",StringComparison.InvariantCultureIgnoreCase) >= 0);

您也可以使用dict.Values.Count(...)。将字典用作源集合的优势在于,如果需要,可以使用密钥和值。