无法转换类型为'Linq.LookupList`1 [System.Nullable .1 [System.Int32]]'的对象以键入Generic.List`1 [System.Nullable .1 [System.Int32]]'

时间:2012-11-08 16:58:35

标签: linq sharepoint-2010

我收到此错误@ List)itemPage.userId

无法转换类型为'Microsoft.SharePoint.Linq.LookupList 1[System.Nullable 1 [System.Int32]]'的对象,以输入'System.Collections.Generic.List 1[System.Nullable 1 [System.Int32 ]]'

代码:

 List<MySitePage> userId = PagesFacade.GetPages(web.Url, (List<int?>)itemPage.userId);

ItemPage中的userId为私有Microsoft.SharePoint.Linq.LookupList<System.Nullable<int>> _userId ;

public static List<MySitePage> GetPages(string relativeWebUrl, List<int?> userIds)

1 个答案:

答案 0 :(得分:1)

LookupList<T>实现IList<T>,而非List。这是确切的实现:

public sealed class LookupList<T> : IList<T>, ICollection<T>, IEnumerable<T>, IEnumerable, ICloneable

既然如此,因为它是IEnumerable,你可以尝试在集合上调用ToList并希望它实现它(尽管我实际上并没有使用Sharepoint集合)。所以试试这个:

List<MySitePage> userId = PagesFacade.GetPages(web.Url, itemPage.userId.ToList());