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

Pec*_*tum -2 c# dictionary

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

提前致谢

Tim*_*ter 6

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

int count = dict.Count(kv => kv.Value.Contains("test"));
Run Code Online (Sandbox Code Playgroud)

如果你想忽略你必须使用的情况IndexOf:

int count = dict.Count(kv => kv.Value.IndexOf("test",StringComparison.InvariantCultureIgnoreCase) >= 0);
Run Code Online (Sandbox Code Playgroud)

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