1

我想从列表中获取一个项目而不加载列表的所有项目。我知道我可以通过调用来做到这一点SPList.getElementbyId(myID),但是如果我不知道这个 myID 是否存在于列表中,我该如何验证呢?是的,我可以使用

SPListItem myItem = myList.Items[myID];
if (myItem == null)
{
   // log that we don't have this item
}

但是,这样,当我调用时myList.Items,列表的所有项目都加载到 inmyList对象中(如果我有 40,000 个项目,这确实是一个性能问题),所以我宁愿使用:

SPListitem myItem = myList.getElementById(myID);

这样我就不会调用该Items属性,我们也不需要加载这些项目。现在的问题是,getElementById如果列表中不存在该 ID,该方法将引发异常。把它放在一个try/catch声明中并不是一个解决方案,因为我们可能想要验证数百个 ID,并且处理所有的抛出将再次导致性能问题。任何其他想法来检查具有给定 id 的项目是否存在?

4

1 回答 1

2

您可以使用您的检查运行的所有 id 构建一个查询,并将返回的列表与您检查的 id 进行比较,并确定哪些是有效的或无效的。

通过这种方式,您只能检索您需要的内容,同时仍能找到丢失的内容。

于 2009-01-12T20:07:12.113 回答