我们的一些数据不是最干净的。例如,如果一个人以两种不同的方式给出了他们的地址,他可能会出现在输出中两次:一次是“RD”,另一次是“Road”。
有趣的是,他们一半的数据出现在一条记录中,另一半出现在另一条记录中。所以...
Johnny, Larsen Rd, Tuesday, 4 milk bottles
Johnny, Larsen Road, Tuesday, 3 milk bottles
约翰尼周二的消费量实际上是 7 瓶牛奶。我正在尝试编写一个 LINQ 来合并这两个对象而不会带来太多痛苦,但这就是我到目前为止所拥有的一切:
var records = report.GroupBy(r => r.Date)
.Select(n => new MilkBottleRecord() {
Name = report.First().Name,
Address = report.First().Address,
Date = report.First().Date,
Bottles = n.Sum(x => x.Bottles),
});
有什么建议么?
我应该指出 A) 这不是我们的数据,所以我们不能真正进行清理,并且 B) 我们是通过 CSV 而不是从 SQL 查询中获取它的。
此外,上述查询中唯一相关的信息是日期,因为我已经在之前的查询中分离了不同的帐户。既然那个很好,我认为不值得你花时间把它包括在这里。