2010-04-10 61 views
0

首先非常感谢您的帮助,下面是我的矩阵,我想实现在LINQ多个阵列之间的组合算法对于这个矩阵。请帮帮忙,现在我有一个矩阵,我想使用组合算法来生成长度阵列6

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”不包含定义‘组合’,没有扩展方法‘一个错误的组合’接受型“System.Collections.Generic.IEnumerable”的第一个参数可以找到(是否缺少using指令或程序集引用?

我使用的.Net Framework3.5,是什么呢?

的原因

回答

1

你的错误实际上是一个编译器错误,应该在你尝试调用你的扩展方法的行中声明。你确定你的扩展方法是在一个静态类中声明的,它的名字空间已经被导入了吗?

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

+0

谢谢,H 组合方法错误已经解决了,这是因为我不明白扩展方法的概念。 但是如何处理矩阵呢? – 2010-04-10 15:12:18