0

目前我的程序是这样工作的:

List<Dict<string, double>> GroupA;
List<Dict<string, double>> GroupB;
* All dictionaries have the same keys but with dif values

foreach(string key in GroupA[0])
{
      List<double> GroupA_Values;
      foreach(Dict d in GroupA)
          GroupA_Values.add(d[key]);

      List<double> GroupB_Values;
      foreach(Dict d in GroupB)
          GroupB_Values.add(d[key]);

      CompareValuesFunction(GroupA_Values, GroupB_Values);
}

有没有更有效的方法来做到这一点?

4

1 回答 1

0

与其拥有一个字典列表,不如拥有一个Dictionary<string, List<string>>where values 是与特定键关联的所有值的列表。

目前,您正在为每个字典值处理每个字典中的每个值。这根本不能很好地扩展。通过将所有值复制到列表中,所有内容都将线性缩放,而不是多项式。

这种设置也将消耗更少的内存(字典比其他数据结构消耗更多的内存以获得快速的搜索速度)。

正如评论中提到的,如果我们对什么(即查看它的代码)有更多了解,CompareValuesFunction我们可能会提出额外的改进建议。

于 2012-05-30T01:43:39.310 回答