我有以下代码,需要将其转换为简单语句(删除使用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)));
}
答案 0 :(得分:1)
我终于解决了这个问题。我使用udf clr函数从数据库读取数据而不使用 [SqlFunction(DataAccess = DataAccessKind.Read,SystemDataAccess = SystemDataAccessKind.Read)] 属性,并将结果传递给组合函数。结果,函数的参数为null,并抛出了异常。