System.Array中的Aggregate和ToArray函数不起作用

时间:2014-05-14 16:23:48

标签: c# .net .net-4.5 ienumerable system.array

我有两个错误:

  

'的System.Array'不包含' Aggregate'的定义和不   扩展方法' Aggregate'接受第一个类型的参数   '的System.Array'可以找到(你是否错过了使用指令或   装配参考?)

     

'&System.Collections.Generic.IEnumerable LT;对象[] GT;'不含   “ToArray”的定义'没有扩展方法' ToArray'验收   类型的第一个参数   '&System.Collections.Generic.IEnumerable LT;对象[] GT;'可以找到   (您是否缺少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
    }

2 个答案:

答案 0 :(得分:6)

你错过了

using System.Linq;

位于文件顶部。如果没有这个,C#编译器就不知道在哪里找到你想要使用的LINQ扩展。

答案 1 :(得分:0)

在.cs文件的顶部添加using System.Linq;