为什么我的内循环迭代少于循环?很奇怪?

col*_*ang 1 c# linq

例如

            foreach(var toCheck in query)
            {
                foreach (var againstItem in totalWeight)
                {
                    count1++
                    if (getIEnumerable(toCheck,againstItem).Any(
                           x => { count2++; return (x == againstItem.Key); }))
                    {
                        blacklist.Add(toCheck);
                        break;
                    }
                    count3++;
                }
            }
Run Code Online (Sandbox Code Playgroud)

结果是: count1= 166184 count2= 30620 count3= 165848

我期待count2count1和相比会更大count3

Pet*_*ete 5

对于getIEnumerable(...)返回的集合中的每个元素,count2将递增一次,直到在该集合中找到匹配为止.

如果该函数返回空集合,则count2可以很容易地小于count1