вернуть коллекцию SPListItemCollection с одним случайным элементом - PullRequest
2 голосов
/ 09 марта 2009

У меня есть коллекция SPListItemCollection.

Я в основном хочу получить один из предметов (случайным образом) в коллекции и вернуть его.

Мой метод имеет возвращаемый тип, который ожидает SPListItemCollection, поэтому я не против иметь SPListItemCollection, в которой есть только один элемент, и возвращать его.

Я не уверен, как вернуть коллекцию SPListItemCollection с этим одним элементом

как я могу это сделать?

Ответы [ 3 ]

2 голосов
/ 09 марта 2009

Я думаю, вам нужно добавить элемент в коллекцию, которую вы хотите вернуть, затем вам нужно вызвать 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 ()

Но на самом деле вы должны подумать о возвращении только предмета, а не коллекции. Нет смысла возвращать коллекцию, если вы всегда знаете, что в ней будет только один элемент

2 голосов
/ 18 июня 2009

При повторном чтении похоже, что вы хотите уменьшить 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);
}
0 голосов
/ 09 марта 2009

Выберите случайный предмет в коллекции. Заполните объект Rand, а затем, когда вы собираетесь получить случайное число из него, используйте границы массива, чтобы определить границы вашего случайного объекта (0, spListItemCollection.Count);

Возьмите этот элемент, оберните его в новую коллекцию SPListItemCollection и верните его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...