答案 0 :(得分:7)
所有这一切的原因很简单。当您写SPList.Items.Count
以获取项目总数时,SPList.Items
会返回列表中所有项目的集合。
你不想要所有物品,这可能是一个昂贵的行动
通过编写SPList.ItemCount
,您确保只从数据库中读取数字,而不是所有项目。
基本上,对于列表中的所有项都是如此 - 您通常应该尽可能避免使用整个Collection对象(即SPList.Items
或SPFolder.Files
)。同样,如果您多次使用它们,则应使用局部变量缓存它们。
以下是使用索引器的示例。假设我有一个Guid,并希望得到一个项目。
SPListItem item = list.Items[guid];
看起来很无辜,但它实际上与:
相同SPListItemCollection items = list.Items;
SPListItem item = items[guid];
重点是 - SharePoint(和C#,真的)不知道接下来要做什么,或者你将如何使用该集合。你写完.Items
时已经的时间很慢。
答案 1 :(得分:1)
基本上,对于列表中的所有项都是如此 - 您通常应该尽可能避免使用整个Collection对象(即SPList.Items或SPFolder.Files)。同样,如果您多次使用它们,则应使用局部变量缓存它们。
以下是使用索引器的示例。假设我有一个Guid,并希望得到一个项目。
SPListItem item = list.Items [guid];
看起来很无辜,但它实际上与:
相同SPListItemCollection items = list.Items; SPListItem item = items [guid];
重点是 - SharePoint(和C#,真的)不知道接下来要做什么,或者你将如何使用该集合。你写完的那一刻。你已经做了一个慢的操作。