我有两个错误:
'的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
}
答案 0 :(得分:6)
你错过了
using System.Linq;
位于文件顶部。如果没有这个,C#编译器就不知道在哪里找到你想要使用的LINQ扩展。
答案 1 :(得分:0)
在.cs文件的顶部添加using System.Linq;
。