跟踪多个列表的索引的最佳做法

时间:2017-07-17 22:48:30

标签: c#

所以基本上我有很多foos列表。

List<List<foo>> listOfFooLists;

用户可以选择带滑块的时间,并且所有列表的所有值(时间戳都小于所选时间)将相加。 为了在用户更改时间时保存性能,我想跟踪索引,以便我只能总结(或减去)尚未添加的值。

public class foo
{
    float someValue;
    DateTime someTimestamp;
}

什么是以某种方式跟踪索引并将它们链接到各自列表的最佳方式。 我希望我能以某种方式澄清我的问题...... 提前致谢

*编辑:是的,列表按时间戳排序。

无论如何,这只是一个例子。在我的真实项目中,操作比仅仅总结值更昂贵。

目前,该列表无法增长,但如果它们可以增长,则会在最后添加新项目。

1 个答案:

答案 0 :(得分:1)

如果您的列表足够大,您将看到重要的性能命中,那么跟踪该信息可能是值得的。作为选项的示例,您可以创建一个新结构来替换列表列表。此结构可以包含一个附加参数来跟踪已经处理的值。一个粗略的例子:

public struct ListTracker  
{  
    public List<foo> bar;
    public bool isAdded;
}

List<ListTracker> tracker;