目前我的程序是这样的:
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);
}
有更有效的方法吗?
答案 0 :(得分:0)
您应该拥有Dictionary<string, List<string>>
,而不是拥有字典列表,其中值是与特定键相关联的所有值的列表。
目前,您要为每个字典值处理每个字典中的每个值。这根本不能很好地扩展。通过将所有值复制到列表,所有内容都将按比例缩放,而不是多项式。
此设置也会消耗更少的内存(字典比其他数据结构消耗更多内存,以便获得快速的搜索速度)。
正如评论中所提到的,如果我们更了解CompareValuesFunction
(即看到它的代码),我们可能会建议进一步改进。