这只是一个快速的问题,是否有更简单/更快捷的方法来获取字典中所有元素的计数,其中字符串值包含某个字符串。即所有元素都存储在值中有“test”的位置。 显然,我可以遍历所有元素并获取值,然后检查它是否包含值,如果它确实增加了一个计数器,但我只是想知道是否有更容易/更快的方法。
提前致谢
答案 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(...)
。将字典用作源集合的优势在于,如果需要,可以使用密钥和值。