Linq以简单的foreach cicles

时间:2017-01-24 08:22:19

标签: c# .net sql-server linq

我有以下代码,需要将其转换为简单语句(删除使用linq)。

有人可以帮忙吗?

  public static IEnumerable<IEnumerable<T>> Combinations<T>(this IEnumerable<T> elements, int k)
    {
        List<T> list = new List<T>();
        foreach (var element in elements)
        {
            list.Add(element);
        }

        var enumerable = elements as IList<T> ?? list;

        return k == 0 ? new[] { new T[0] } :
            enumerable.SelectMany((e, i) =>
                    enumerable.Skip(i + 1).Combinations(k - 1).Select(c => (new[] { e }).Concat<T>(c)));
    }

1 个答案:

答案 0 :(得分:1)

我终于解决了这个问题。我使用udf clr函数从数据库读取数据而不使用 [SqlFunction(DataAccess = DataAccessKind.Read,SystemDataAccess = SystemDataAccessKind.Read)] 属性,并将结果传递给组合函数。结果,函数的参数为​​null,并抛出了异常。