【发布时间】:2015-05-01 09:24:27
【问题描述】:
所以我在尝试构建查询时做了一个小小的噩梦,尽管它真的不应该那么困难。
我有一个类visitItem
public class visitItem
{
public int visitId {get; set;}
public int contactId {get; set;}
public int locationId {get; set;}
public DateTime FirstSeen {get; set;}
public DateTime LastSeen {get; set;}
public double Duration {get; set;}
}
基本上我在 json 中访问历史日期,我将其反序列化为 visitItem 列表,并从数据中形成几个不同的图表。
我想要做的是从我选择特定月份的主列表中创建一个新列表,结果列表现在按 contactId 分组,并且持续时间相加:
List<visitItem> totalDurations = visits
.Where(x => x.FirstSeen.ToString("MM") == month)......
这样就选择了相关月份的数据,然后我希望列表如下:
contactId duration
1 10
2 5
3 5
4 20
代替:
contactId duration
1 5
1 5
2 5
3 5
4 10
4 10
我怎样才能做到这一点?
【问题讨论】:
-
你为什么要执行字符串转换?当然使用
FirstSeen.Month会更简单......无论如何,你还没有解释为什么你想要第一个输出,或者输入是什么......目前你刚刚说过你想要它是 X 而不是 Y,这给了我们很少的上下文来帮助你...... -
啊 - 重新格式化问题后,它更有意义。请注意在发布问题之前预览问题,以确保它确实有意义。
-
接下来,您说您已按contactId 分组,但您根本没有显示查询的那部分,这再次让人难以提供帮助。理想情况下,提供一个简短但完整的程序来演示问题...
-
抱歉,原帖中的格式不正确。我现在才回头看,我认为我的答案与上面的编辑后完全一样。我并不是说我是按contactId 分组的,我的意思是我首先只选择第x 个月的访问来获得相关列表。然后应该对结果列表进行分组和汇总等。感谢您的帮助