SharePoint 2010. Random ListItem

Что делаем

Получаем произвольный элемент из списка/библиотеки. Здесь варианта два. Первый - получить коллекцию ID'шников элементов и выбрать из них произвольно. Второй поинтересней и основан на том, что элементы из списка можно получать не только по ID, но и по индексу.

Делаем

Для красоты напишем метод-расширитель для класса SPList, который будет выдавать произвольный элемент. Примерно вот так:

  1. namespace SharePoint.ZhukPoint.Extensions
  2. {
  3.   public static class SPListExtensions
  4.   {
  5.     public static SPListItem RandomItem(this SPList list)
  6.     {
  7.       if (list.ItemCount == 1) return list.Items[0];
  8.       var rnd = new Random(Environment.TickCount);
  9.       var i = rnd.Next(0, list.ItemCount - 1);
  10.       var item = list.Items[i];
  11.       return item;
  12.     }
  13.   }
  14. }
Код простой до безобразия и, я думаю, понятен без комментариев. Теперь остается использовать примерно вот так:
  1. var list = web.Lists["Список такой-то"];
  2. var item = list.RandomItem();
Пользуемся
Виталий Жуков

Виталий Жуков

Техлид, Архитектор, Разработчик, Microsoft MVP. Более 20 лет опыта в области системной интеграции и разработки программного обеспечения. Специализируюсь на проектировании и внедрении масштабируемых высокопроизводительных программных решений в различных отраслях.

Смотрите также