0

作成された最新の 5 つの Web を簡単に取得する方法が必要です。

私は、すべての Web に Created Date プロパティがあることを知っています。

1000のサブサイトが存在する可能性があるため、foreachなしでこれを実行したいと思います。

何か案が?

 using (SPSite clientSiteCollection = new SPSite(currentUrl))
            {
                foreach (SPWeb web in clientSiteCollection.AllWebs.Select(c => c.Properties["WebTemplate"] == "xx").OrderByDescending(d => d.Created).Take(5))
                {
4

2 に答える 2

1

Linq を使用できます。これと似たようなものでしょう。

var newestSites = clientSiteCollection.AllWebs.OrderByDescending(p=>p.CreatedDate).ToList().Take(5);
// Now NewestSites is a collection of your top 5 newest created Sites.
于 2013-06-04T13:40:08.000 に答える
0

SharePoint 検索に対して KeywordQuery を作成することをお勧めします。ここでは、検索結果として "SPWeb" のみが必要であり、管理プロパティ "Created" をクエリの基準として渡すことを指定します。このようなもの:

myQuery.QueryText = "contentclass:STS_web Created>6/1/2013"

KeywordQuery の構築: http://dotnetmafia.com/blogs/dotnettipoftheday/archive/2013/01/03/how-to-use-the-sharepoint-2013-search-keywordquery-class.aspx

さらに、5 つの結果のみが必要な KeywordQuery を構成します。

myQuery.RowLimit = 5;

そして、それらを「作成済み」で降順で並べ替えます。

myQuery.SortList.Add("Created", SortDirection.Descending);

検索クエリの並べ替え: http://dotnetmafia.com/blogs/dotnettipoftheday/archive/2013/01/03/how-to-sort-search-queries-in-sharepoint-2013.aspx

于 2013-06-04T16:21:00.440 に答える