使用大列表

时间:2010-03-30 12:08:28

标签: c# performance list

在我正在使用的Outlook AddIn中,我使用列表来获取当前文件夹中的所有消息,然后处理它们,然后保存它们。首先,我创建了所有消息的列表,然后我从消息列表中创建了另一个列表,最后我创建了需要移动的第三个消息列表。从本质上讲,它们都是彼此的副本,我这样做是为了组织它。如果我只使用一个列表,它会提高性能吗?我以为列表只是对实际项目的引用。

2 个答案:

答案 0 :(得分:3)

如果没有看到您的代码,就无法判断您是创建列表本身的副本还是引用的副本到列表中 - 后者更可取。

另一件需要考虑的事情是,您是否可以使用iterator block从Outlook流式传输邮件。通过使用List<T>,您当前正在缓冲整个消息序列,这意味着您必须将它们全部保存在内存中,一次处理一个。流式传输消息会减少应用程序的内存压力,因为您只需将每条消息保存在内存中足够长的时间来处理它。

答案 1 :(得分:0)

除非您的列表包含1000万或更多的项目,否则它应该不是问题。

Outlook似乎有一个更小的邮箱问题,所以我会说你非常安全。