using System;
using System.Linq;
using System.Collections.Generic;
public class P
{
struct DataItem
{
public System.
DateTime time; public int number;
}
public static void Main(string[] args)
{
var ItemList = new DataItem[] {} ;
var groups = ItemList
.
GroupBy(item
=> new
{ item.
time.
Hour, item.
time.
Minute }); var sums = groups
.ToDictionary(g => g.Key, g => g.Sum(item => item.number));
// lookups now become trivially easy:
int partialByTimeSlot = sums[new {Hour=23,Minute=10}];
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uTGlucTsKdXNpbmcgU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWM7CgpwdWJsaWMgY2xhc3MgUAp7CglzdHJ1Y3QgRGF0YUl0ZW0KCXsKCQlwdWJsaWMgU3lzdGVtLkRhdGVUaW1lIHRpbWU7CgkJcHVibGljIGludCBudW1iZXI7Cgl9CgoJcHVibGljIHN0YXRpYyB2b2lkIE1haW4oc3RyaW5nW10gYXJncykKCXsKCQl2YXIgSXRlbUxpc3QgPSBuZXcgRGF0YUl0ZW1bXSB7fSA7CgkJdmFyIGdyb3VwcyA9IEl0ZW1MaXN0CgkJCS5Hcm91cEJ5KGl0ZW0gPT4gbmV3IHsgaXRlbS50aW1lLkhvdXIsIGl0ZW0udGltZS5NaW51dGUgfSk7CgkJdmFyIHN1bXMgICA9IGdyb3VwcwoJCQkuVG9EaWN0aW9uYXJ5KGcgPT4gZy5LZXksIGcgPT4gZy5TdW0oaXRlbSA9PiBpdGVtLm51bWJlcikpOwoKCgkJLy8gbG9va3VwcyBub3cgYmVjb21lIHRyaXZpYWxseSBlYXN5OgoKCQlpbnQgcGFydGlhbEJ5VGltZVNsb3QgPSBzdW1zW25ldyB7SG91cj0yMyxNaW51dGU9MTB9XTsKCX0KfQo=