1

使用 Sitecore 和 Linq 扩展。

我正在尝试使用以下代码将项目数组转换为列表:

Item variationsFolder = masterDB.SelectSingleItem(VariationsFolderID.ToString());
List<Item> variationList = variationsFolder.GetChildren().ToList<Item>();

但是,每当我尝试构建时,我都会不断收到此错误:

'Sitecore.Collections.ChildList' does not contain a definition for 'ToList' and the best extension method overload 'System.Linq.Enumerable.ToList<TSource>(System.Collections.Generic.IEnumerable<TSource>)' has some invalid arguments

我有以下用途:

using System.Linq;
using System.Xml.Linq;

我参考:

System.Core

我刚刚从另一个位置复制了这段代码,所以它应该可以正常工作,只能认为有一些简单的东西(比如参考或我遗漏的东西)。

4

1 回答 1

5

我对 SiteCore 没有任何经验,但确实ChildList实施IEnumerable而不是实施IEnumerable<T>

如果是这样,试试这个:

List<Item> variationList = variationsFolder.GetChildren()
                                           .Cast<Item>()
                                           .ToList();

基本上通过转换每个元素来Cast<T>转换为。IEnumerableIEnumerable<T>

于 2010-05-24T06:51:34.753 回答