编辑:我错过了关键的一点:.NET 2.0通过列表进行遍历和动态创建汇总行
考虑在那里我有未排序的项目列表的情况下,对一类简单起见像这样:
class TestClass
{
DateTime SomeTime;
decimal SomePrice;
// constructor
}
我需要创建一个报告状输出,其中总价格为每一天累积。每个项目应该有一行,由相应的摘要行组成。
参与我们的测试数据:
List<TestClass> testList = new List<TestClass> {
new TestClass(new DateTime(2008,01,01), 12),
new TestClass(new DateTime(2007,01,01), 20),
new TestClass(new DateTime(2008,01,01), 18)
};
所需的输出会是这样的:
2007-01-01:
20
Total: 20
2008-01-01:
12
18
Total: 30
什么是接近这样的情况下最好的方法是什么?在这种列表的情况下,我将实现TestClass的IComparable接口,以便列表可以排序。
要创建报告本身,这样的事情也可以使用(假设我们有像积累的价格,跟踪当前日期等任务的方法):
for (int i=0;i<testList.Count;i++)
{
if (IsNewDate(testList[i]))
{
CreateSummaryLine();
ResetValuesForNewDate();
}
AddValues(testList[i]);
}
// a final summary line is needed to include the data for the last couple of items.
CreateSummaryLine();
这工作好了,但就第二个“CreateSummaryLines”而言,我有一种奇怪的感觉。
你在哪些方面处理这种情况(特别是考虑到事实,我们需要使用项目清单<>而不是预先分类的词典或类似的东西)?
错过了重要的信息 – Grimtron 2008-10-17 12:51:02