我有一个包含这些项目的列表。
ID TaskId Purposecode UserId Time
1 1 915 421 7.0
2 1 915 421 7.0
3 1 915 421 7.0
4 4 912 421 7.0
如何在不使用linq的情况下进行分组?
目标是获得此
TaskId Purposecode UserId Time
1 915 421 21.0 (uniqeID: 1,2,3)
4 912 421 14.0 (uniqeID: 4,5)
我在代码中执行此操作的原因是因为出于其他原因我需要在分组后使用唯一ID。
答案 0 :(得分:0)
您可以使用列表字典......就像这样(假设“Item”是包含您数据的实体):
Dictionary<int, List<Item>> itemsByTask = new Dictionary<int, List<Item>>()
foreach (Item item in items) {
List<item> groupItems;
if (!itemsByTask.TryGetValue(item.TaskID, out groupItems)) {
groupItems = new List<Item>();
itemsByTask.add(item.TaskID, groupItems);
}
groupItems.Add(item);
}