C# 反转散斑图

C# 反转散斑图,c#,sharepoint,C#,Sharepoint,我需要以相反的顺序(从最后一个条目到第一个条目)从列表中提取项目。我设法弄到了所有的东西,但是,从第一件到最后一件。以下是我正在使用的部分代码: 该列表位于其他网站集上 using (SPSite oSite = new SPSite("urltolist")) { using (SPWeb oWeb = oSite.RootWeb) { SPList FItem = oWeb.Lists

我需要以相反的顺序(从最后一个条目到第一个条目)从列表中提取项目。我设法弄到了所有的东西,但是,从第一件到最后一件。以下是我正在使用的部分代码:

该列表位于其他网站集上

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

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



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

获取
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]
),您最终会重复查询列表,因此不要这样做。

获取
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]
),那么您最终会重复查询列表,所以不要这样做。

在这种情况下,您不需要处理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
    }
}
使用(var site=new SPSite(“urltolist”))
{
var list=site.RootWeb.Lists[“list”];
foreach(list.Items.Cast().Reverse().ToList()中的变量li)
{
//显示条目
}
}

在这种情况下,您不需要处理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
    }
}
使用(var site=new SPSite(“urltolist”))
{
var list=site.RootWeb.Lists[“list”];
foreach(list.Items.Cast().Reverse().ToList()中的变量li)
{
//显示条目
}
}

您需要问的问题是项目的开始顺序-按照您的方式,它们将按ID排序(类似于创建时间)。如果您想以另一种方式对它们进行排序,请使用带有OrderBy子句的SPQuery来检索列表项。

您需要问的问题是这些项的开始顺序-按照您的方式,它们将按ID排序(类似于创建时间)。如果要以另一种方式对它们进行排序,请使用带有OrderBy子句的SPQuery来检索列表项。

这也可以通过CAML查询来完成。您需要退回所有物品吗?如果可以限制查询,则可以使用CAML节点

这也可以通过CAML查询完成。您需要退回所有物品吗?如果可以限制查询,则可以使用CAML节点

RootWeb
上获得了很好的捕获。但是为什么要使用
ToList
?您不需要ToList()。我只是偶尔添加它,以明确我强制Linq表达式求值的位置。这是
RootWeb
上的好消息。但是为什么要使用
ToList
?您不需要ToList()。我只是偶尔添加它,以明确我强制Linq表达式求值的位置。