2017-12-06 10 views
0

私のUmbracoアプリケーションでは、私のホームページに3つのニュースフィードアイテムが必要です。Umbraco 7でIPublishedContentのn個のアイテムを取得する方法

私が行うことで、完全なリストを取得することができる午前:私はTakeメソッドを使用して3つのアイテムを取得するのLINQを使用してみました

IEnumerable<IPublishedContent> newsItems = CurrentPage.newsRootPage.Children as IEnumerable<IPublishedContent>;

を:

IEnumerable<IPublishedContent> newsItems = CurrentPage.newsRootPage.Children.Take(3) as IEnumerable<IPublishedContent>;

を私が得ます例外:

Microsoft.CSharp.RuntimeBinder.RuntimeBinderException:「」System.Collections.Generic.Listは、「私は(かみそりビューの上部にLINQの名前空間をインポートしようとしている」

『を取る』の定義が含まれていません。 @using System.Linq;)しかし、これは役に立ちません。

誰でも手助けできますか?

+1

'(IEnumerableをなどCurrentPage.newsRootPage.Childrenを)'(3)を取りますか? –

+0

ありがとう!あなたが答えを書くなら、私はそれを受け入れるだろう.. –

答えて

0

あなたはそう言っていませんが、私はCurrentPage.newsRootPage.Childrenがリストであると仮定します。 ListIEnumerableを実装していますが、IEnumerable<T>を実装していません。

ただし、すべての子どもがIPublishedContentを実装していることが確実であれば、簡単にシーケンスをIEnumerable<IPublishedContent>に変換できます。これはEnumerable.Castを使用して行われます。その後、あなたはEnumerable.Take使用することができます。

IEnumerable<IPublishedContent> newsItems = CurrentPage.newsRootPage.Children 
    .Cast<IPublishedContent>() 
    .Take(3) 
関連する問題