是否可以按列表分组而不使用linq

时间:2014-09-23 07:03:40

标签: vb.net list

我有一个包含这些项目的列表。

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。

1 个答案:

答案 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);
}