我有一个SPListItemCollection。
我基本上想要收集集合中的一个项目(随机)并将其返回。
我的方法有一个需要SPListItemCollection的返回类型,所以我不介意让一个SPListItemCollection只有一个项目并返回它。
我不知道如何使用其中的这一项返回SPListItemCollection
我该怎么做?
答案 0 :(得分:2)
我认为您必须将项目添加到要返回的集合中,然后您必须调用update()
SPListItemCollection collListItemsDest; //collection to return
SPListItem oListDest = collListItemsDest.Add(); //add item to collection
oListDest["Field1_Name"] = "RANDOM"; //random item you retrieved
oListDest.Update();
然后你可以返回collListItemsDest
MSDN - SPListItemCollection add()
但实际上,你应该考虑只返回项目而不是集合。如果你总是知道它只有一个项目
,那么没有必要返回一个集合答案 1 :(得分:2)
在重新阅读时,看起来您想要将SPListItemCollection减少为单个项目,但是这里有一种方法可以直接从列表中获取带有单个随机项的SPListItemCollection:
private SPListItemCollection GetRandomItem(SPList list)
{
Random random = new Random();
int index = random.Next(0, list.ItemCount - 1);
SPQuery query = new SPQuery();
query.Query = string.Format("<Where><Eq><FieldRef Name=\"ID\" /><Value Type=\"Integer\">{0}</Value></Eq></Where>", index);
return list.GetItems(query);
}
答案 2 :(得分:0)
选择集合中的随机项。播种Rand对象然后当你从中获取一个随机数时,使用数组的边界来定义随机对象的边界(0,spListItemCollection.Count);
获取该项目,将其包装在新的SPListItemCollection中并返回它。