C# 系统中的聚合和ToArray函数。数组不工作

C# 系统中的聚合和ToArray函数。数组不工作,c#,.net,.net-4.5,ienumerable,system.array,C#,.net,.net 4.5,Ienumerable,System.array,我有两个错误: “System.Array”不包含“聚合”的定义,并且没有 接受类型为的第一个参数的扩展方法“聚合” 如果缺少using指令或 汇编参考 “System.Collections.Generic.IEnumerable”不包含 “ToArray”和无扩展方法“ToArray”的定义 类型的第一个参数 找不到“System.Collections.Generic.IEnumerable” 是否缺少using指令或程序集引用 这是我的密码: /* * Get all

我有两个错误:

“System.Array”不包含“聚合”的定义,并且没有 接受类型为的第一个参数的扩展方法“聚合” 如果缺少using指令或 汇编参考

“System.Collections.Generic.IEnumerable”不包含 “ToArray”和无扩展方法“ToArray”的定义 类型的第一个参数 找不到“System.Collections.Generic.IEnumerable” 是否缺少using指令或程序集引用

这是我的密码:

    /*
     * Get all the possible permutations
     */
    public static IEnumerable<object[]> CartesianProduct(params object[][] inputs)
    {
        //ERROR: Function Aggregate is not recognized
        return inputs.Aggregate(
            (IEnumerable<object[]>)new object[][] { new object[0] },
            (soFar, input) =>
                from prevProductItem in soFar
                from item in input
                select prevProductItem.Concat(new object[] { item }).ToArray());
    }

    public void test()
    {
            //Get all the posible permutations between parents values.
            var cartesianProduct = CartesianProduct(parentsValues);
            object[][] producto = cartesianProduct.ToArray();
            //ERROR: Function ToArray is not recognized
    }
你失踪了

using System.Linq;

在文件的顶部。如果没有这一点,C编译器就不知道在哪里可以找到您试图使用的LINQ扩展;在.cs文件的顶部。

在我的测试中,它不取决于.Net的版本,除非您返回到没有LINQ的版本,但3.5是可以的,只取决于是否使用System.LINQ;包括在内。也许您正在测试不同的版本,通过在使用不同用法的文件之间剪切和粘贴方法?如果你能展示一个,要么答案很清楚,要么我们可以发现一些关于C的模糊的东西/错误。