1

リストからアイテムを逆の順序(最後のエントリから最初のエントリへ)で抽出する必要があります。私はなんとかすべてのアイテムを手に入れることができましたが、最初から最後まで。これが私が使用しているコードの一部です:

リストは別のサイトコレクションにあります。

     using (SPSite oSite = new SPSite("urltolist"))
        {

            using (SPWeb oWeb = oSite.RootWeb)
            {
                SPList FItem = oWeb.Lists["List"];



                foreach (SPListItem item in FItem.Items)             
                {
                 //Display entries
                }
             }
       }
4

4 に答える 4

2

を取得しSPListItemCollection、それを逆に繰り返します。

var itemCollection = FItem.Items;
for(int i = itemCollection.Count - 1; i >= 0; i--)
{
    var item = itemCollection[i];
    //Display entries
}

繰り返すだけの場合FItem.Items(つまり、繰り返し呼び出すFItem.Items[i]場合)は、リストを繰り返しクエリすることになりますので、そうしないでください。

于 2012-07-10T10:02:47.760 に答える
2

この場合、RootWebを破棄する必要はありません。

using(var site = new SPSite("urltolist"))
{
    var list = site.RootWeb.Lists["List"];
    foreach(var li in list.Items.Cast<SPListItem>().Reverse().ToList())
    {
        // Display entries
    }
}
于 2012-07-10T10:03:04.917 に答える
1

これは、CAMLクエリを使用して実行することもできます。すべてのアイテムを返品する必要がありますか?クエリを制限できる場合は、CAMLノードを使用できます。

于 2012-07-10T15:19:59.053 に答える
1

質問する必要があるのは、項目をどの順序で開始するかということです。その方法では、項目は ID で並べ替えられます (作成時間と同様)。別の方法で並べ替える場合は、OrderBy 句を指定した SPQuery を使用してリスト アイテムを取得します。

于 2012-07-10T15:14:07.303 に答える