2014-10-27 3 views
0

Мне нужно удалить группы с сайта SharePoint, содержащие символ подчеркивания в названии. Мне нужно что-то вроде приведенного ниже кода, но я не могу использовать. Содержит команды collGroups.Удалить только группы SPG, которые содержат определенный символ.

Любая идея, как я могу это сделать?

using (SPSite oSite = new SPSite(spsite)) 
{ 
    using (SPWeb oWeb = oSite.OpenWeb()) 
    {   
     SPGroupCollection collGroups = oWeb.SiteGroups; 
     if(collGroups.Contains("_")) //this doens't work, but I need something like this 
     { 
      group.Delete(); 
     } 
    } 
} 
+0

Он наследует 'IEnumerable' в [точке в ее наследования] (http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spbasecollection (v = office.15) .aspx), поэтому вы должны иметь возможность использовать '.OfType <>(). Где()' или аналогичное заявление linq – gunr2171

+0

ах, да. Благодарю. работая над заявлением linq прямо сейчас! – JAck28

ответ

0

Для справки в будущем: вот что я в итоге написал, благодаря gunr2171 за то, что указал мне в правильном направлении!

using (SPSite oSite = new SPSite(spsite)) 
    { 
     using (SPWeb oWeb = oSite.OpenWeb()) 
     { 
      var result = (from g in oWeb.Groups.OfType<SPGroup>() 
          where g.Name.Contains("_") 
          select g).ToList(); 

      foreach (SPGroup group in result) 
      { 
       SPGroupCollection collGroups = oWeb.SiteGroups; 
       collGroups.Remove(group.Name); 
       Console.WriteLine("Removed " + group.Name); 
      } 

      Console.WriteLine("Process Complete!"); 
     } 
Смежные вопросы