C# Parallel.ForEach是否具有可枚举的KeyValuePairs?

C# Parallel.ForEach是否具有可枚举的KeyValuePairs?,c#,.net,collections,task-parallel-library,C#,.net,Collections,Task Parallel Library,我是否使用了错误的并行ForEach重载方法? 当我使用普通的ForEach循环时,我能够获得当前项,它是预期的正确类型KeyValuePair 但是,当我使用并行版本时,似乎即使我将鼠标悬停在循环中的当前对象上,并且它似乎是正确的类型,仍然无法获得值和键属性 提前谢谢 static void TestParallelForEachKeyValuePair(IEnumerable<KeyValuePair<Animal, string>> kvps) {

我是否使用了错误的并行ForEach重载方法? 当我使用普通的ForEach循环时,我能够获得当前项,它是预期的正确类型KeyValuePair

但是,当我使用并行版本时,似乎即使我将鼠标悬停在循环中的当前对象上,并且它似乎是正确的类型,仍然无法获得值和键属性

提前谢谢

static void TestParallelForEachKeyValuePair(IEnumerable<KeyValuePair<Animal, string>> kvps)
    {
        foreach (var kvp in kvps)
        {
            var test = kvp.Key;
        }

        Parallel.ForEach(kvps, (kvp) =>
        {
            kvp.
        });
    }

此测试方法正在运行,但IntelliSense未显示键和值 Windows窗体。 这就是智能感知问题

    static void TestParallelForEachKeyValuePair()
    {
        List<KeyValuePair<int, string>> test = new List<KeyValuePair<int, string>>();
        test.Add(new KeyValuePair<int, string>(1, "test1"));
        test.Add(new KeyValuePair<int, string>(2, "test2"));
        test.Add(new KeyValuePair<int, string>(3, "test3"));


         Parallel.ForEach(test, (x) =>
         {
             MessageBox.Show(x.Key + "  " + x.Value);
         });
    }

@AhmedAbdelhameed,感谢您的快速反馈。很高兴知道。这是否意味着某个地方有一个bug?真奇怪,我不确定。也许智能感知有问题。如果手动键入var test=kvp.Key;,会发生什么情况;?编译器会抱怨吗?你试过重新启动VS吗?@AhmedAbdelhameed,如果我按照你的建议手动分配变量,它会起作用。然而,重新启动VisualStudio后,intellisense的问题仍然存在。当我将相同的代码复制到另一台计算机上时,它会按预期工作。智能感知没有问题。那不是什么大问题。我可以接受这个。再次感谢。