如何按名称订购 SiteCollection

How to order a SiteCollection by Name

我想按这样的名字订购 Microsoft.Web.Administration.SiteCollection :

ServerManager iisManager = ServerManager.OpenRemote(Vm.CurrentServeur);
SiteCollection websites = iisManager.Sites.OrderBy(x => x.Name);

但我收到以下错误:

Cannot implicitly convert type 'System.Linq.IOrderedEnumerable ' to 'Microsoft.Web.Administration.SiteCollection'

如何订购 SiteCollection?

我建议你添加ToList

iisManager.Sites.OrderBy(x => x.Name).ToList(); 

由于 SiteCollection 没有构造函数,因此您无法创建它。您可以使用它的方法 ClearAdd.

SiteCollection websites = iisManager.Sites;
List<Site> orderedSites = websites.OrderBy(x => x.Name).ToList();
websites.Clear();
foreach(Site s in orderedSites)
    websites.Add(s);

这修改了原来的SiteCollection。如果你根本不需要它,你可以使用 IEnumerable<Site> 或直接使用列表:

List<Site> webSites = iisManager.Sites.OrderBy(x => x.Name).ToList<Site>();