请帮助,现在我有一个矩阵,我想使用组合算法生成长度为6的数组

时间:2010-04-10 11:13:52

标签: c#

首先感谢你的帮助,以下是我的矩阵,我想在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,它是什么原因?

1 个答案:

答案 0 :(得分:1)

您遇到的错误实际上是编译器错误,应该在您尝试调用扩展方法的行中声明。您是否确定扩展方法是在静态类中声明的并且它的命名空间已导入?

我看到你递归调用你的扩展方法,但我可以很好地编译你的代码。错误应该在另一个呼叫站点。