我需要以相反的顺序从列表中提取项(从最后一个条目到第一个条目)。我已经设法得到了所有的项目,但是,从第一项到最后一项。以下是我使用的代码的一部分:
该列表位于其他网站集中。
using (SPSite oSite = new SPSite("urltolist"))
{
using (SPWeb oWeb = oSite.RootWeb)
{
SPList FItem = oWeb.Lists["List"];
foreach (SPListItem item in FItem.Items)
{
//Display entries
}
}
}发布于 2012-07-10 18:03:05
在这种情况下,您不需要处理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-10 18:02:48
获取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-10 23:14:07
你需要问的问题是,项目的开始顺序是什么-你做的方式,它们将按ID排序(类似于创建时间)。如果您想用另一种方式对它们进行排序,可以使用带有OrderBy子句的SPQuery来检索列表项。
https://stackoverflow.com/questions/11410831
复制相似问题