Я хочу получить элемент из списка, не загружая все элементы списка.
Я знаю, что могу сделать это, позвонив по номеру SPList.getElementbyId(myID)
, но если я не знаю, существует ли этот myID в списке, как мне это проверить?
Да, я мог бы использовать
SPListItem myItem = myList.Items[myID];
if (myItem == null)
{
// log that we don't have this item
}
Однако, таким образом, когда я звоню myList.Items
, все элементы списка загружаются в объект myList
(а если у меня 40 000 элементов, это действительно проблема производительности), поэтому я бы скорее используйте:
SPListitem myItem = myList.getElementById(myID);
Таким образом, я не буду вызывать свойство Items
, и нам не нужно будет загружать эти элементы.
Теперь проблема в том, что метод getElementById
сгенерирует исключение, если этот идентификатор в списке присутствует. Это не решение, чтобы поместить это в try/catch
статистику, потому что мы могли бы хотеть проверить несколько houndreds идентификаторов, и обработка всех этих бросков снова приведет к проблеме производительности.
Есть какие-нибудь идеи проверить наличие предмета с данным идентификатором?