【发布时间】:2016-03-03 02:03:16
【问题描述】:
我正在处理一个大型数据表。我需要做一些过滤来计算某些行的总和值。对于以下代码,它过滤相同的 IDfile 并计算总和。我的问题是如果我想添加一个结合 IDfile 的其他条件
for (int i = 0; i < LoadIDcount; i++)
{
string IDnow = LoadID[i, 0];
for (int j = 0; j < 8760; j++)
{
string colPnow = SP_dt.Columns[j * 2 + 4].ColumnName.ToString();
double ColP_sum = (double)SP_dt.Compute(String.Format("Sum([{0}])", colPnow), String.Format("Load_ID = '{0}'", IDnow));
string colQnow = SP_dt.Columns[j * 2 + 5].ColumnName.ToString();
double ColQ_sum = (double)SP_dt.Compute(String.Format("Sum([{0}])", colQnow), String.Format("Load_ID = '{0}'", IDnow));
LoadP_dt.Rows[i][j + 2] = ColP_sum;
LoadQ_dt.Rows[i][j + 2] = ColQ_sum;
Console.WriteLine("{0} {1}", i, j);
}
}
数据表是这样的:
SP_ID Load_ID CUSTOMER_TYPE Phase 1/1/2015 0:00
1234567 11111111111 DOM ABC 3.8928
2345678 2222222222 DOM ABC 1.9608
3456788 33333333 IND ABC 3.742
23242 4444444444 IND ABC 6.9856
23890583 55555555555 IND ABC 1.0628
我想在计算中添加两个条件来过滤 ID 和客户类型
【问题讨论】:
-
任何输入样本和预期输出?
-
一般情况下,我们在查询的时候过滤case,在它变成数据表之前,使用SQL语句。但如果这已成为
DataTable,那么LINQ查询可能会有所帮助。SP_dt是您的完整数据表,包含名称为:SP_ID, Load_ID, CUSTOMER_TYPE, Phase等的列吗?而且您只想过滤其中的一些条目,不是吗?考虑使用Where子句。 -
另外,好像你有这么多列:
SP_dt.Columns[j * 2 + 4]wherej < 8760? -
是的,一列。 SP_dt 是我的完整表格,包含所有信息
-
DataTable 有一个过滤器属性做谷歌搜索以获取更多信息