首先感谢你的帮助,以下是我的矩阵,我想在LINQ中为这个矩阵实现多个数组之间的组合算法。
int[,] cj = {
{ 10, 23, 16, 20 },
{ 22, 13, 1, 33 },
{ 7, 19, 31, 12 },
{ 30, 14, 21, 4 },
{ 2, 29, 32, 6 },
{ 18, 26, 17, 8 },
{ 25, 11, 5, 28 },
{ 24, 3, 15, 27 }
};
其他:
public static IEnumerable<IEnumerable<T>> Combinations<T>(this IEnumerable<T> elements, int k)
{
return k == 0 ? new[] { new T[0] } :
elements.SelectMany((e, i) =>
elements.Skip(i + 1).**Combinations**(k - 1).Select(c => (new[] { e }).Concat(c)));
}
上面的方法在我的项目中有错误,System.Collections.Generic.IEnumerable'不包含'Combinations'的定义,也没有扩展方法'Combinations'接受类型'System.Collections.Generic的第一个参数。可以找到IEnumerable'(您是否缺少using指令或程序集引用?
我使用.Net Framework3.5,它是什么原因?
答案 0 :(得分:1)
您遇到的错误实际上是编译器错误,应该在您尝试调用扩展方法的行中声明。您是否确定扩展方法是在静态类中声明的并且它的命名空间已导入?
我看到你递归调用你的扩展方法,但我可以很好地编译你的代码。错误应该在另一个呼叫站点。