我想从列表中获取一个项目而不加载列表的所有项目。我知道我可以通过调用来做到这一点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 的项目是否存在?