我的函数有四个参数,一个数据集,一个由表达式组成的数组(聚合函数),一个由应用表达式的列名组成的数组,一个由我必须分组的列组成的数组。
我的问题是如何处理表达式和分组依据的动态列或字段,因为它的数量可能会有所不同(取决于数组值)。
我已经为静态查询编写了代码,但需要一种通用的方式......
这是我的代码:
public void ExpressionManipulation(DataSet dsExprEvaluate, string[] strExpressions, string[] colName, string[] groupbyFields)
{
int groupByLength = groupbyFields.Length;
var groupByQueryEvaluate = from table in dsExprEvaluate.AsEnumerable()
group table by new { column1 = table["DataSourceType"], column2 = table["Polarity"] }
into groupedTable
select new
{
x = groupedTable.Key, // Each Key contains column1 and column2
y = groupedTable.Count(),
//z = groupedTable.Max(column1),
z = groupedTable.Sum(table => Convert.ToInt32(table["Polarity"]))
};
}
就像上面一样,我现在可以有 n 个字段分组,现在我只取了两个(DataSourceType 和 Polarity),类似的我可以有 n 个字段用于表达式,对于 sum、count 等,它们将作为一个数组作为范围。
请帮我解决这个问题,这让我发疯。
提前致谢。