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 に答える