我一直在调试这个生产错误,我迫切需要帮助,这对我来说也很有意思.
我简化了代码逻辑并为调试添加了一些打印输出:
int[] a = { 2,2,2 };
var b = a.Where(x => x==2);
for(int i = 0; i < 3; i++)
{
var c = b.Where(x => x==i);
Console.WriteLine("iter {0} before - B Count: {1}, C Count: {2}", i, b.Count(), c.Count());
if (c.Count() != b.Count())
b = b.Except(c);
Console.WriteLine("iter {0} after - B Count: {1}, C Count: {2}", i, b.Count(), c.Count());
}
Console.WriteLine("After Loop: B Count: {0}", b.Count());
Run Code Online (Sandbox Code Playgroud)
有趣的是(奇怪),输出是:
iter 0 before - B Count: 3, C Count: 0 …Run Code Online (Sandbox Code Playgroud)