リストのすべてのアイテムをロードせずに、リストからアイテムを取得したい。を呼び出すことでできることはわかってい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 を持つアイテムの存在を確認するためのアイデアはありますか?