C# 带有Lambda语句的IQueryable返回类型

C# 带有Lambda语句的IQueryable返回类型,c#,silverlight,lambda,iqueryable,return-type,C#,Silverlight,Lambda,Iqueryable,Return Type,我正面临着这个函数的返回类型的问题,而且还没有真正解决这个问题。有人能帮我解决这个问题吗 这是函数 public IQueryable<System.Collections.Generic.Dictionary<discussion_category, List<discussion_board>>> GetDiscussion_categoriesWithBoards() { return GetDiscussion_categories().Sel

我正面临着这个函数的返回类型的问题,而且还没有真正解决这个问题。有人能帮我解决这个问题吗

这是函数

public IQueryable<System.Collections.Generic.Dictionary<discussion_category, List<discussion_board>>> GetDiscussion_categoriesWithBoards()
{
    return GetDiscussion_categories().Select(c =>
        new
        {
            Category = c,
            Boards = GetDiscussion_boardsByCategory(c.ID).ToList()
        }).ToDictionary(i => i.Category, i => i.Boards.ToList());
}
public IQueryable GetDiscussion\u分类与boards()
{
返回GetDiscussion_categories()。选择(c=>
刚出现的
{
类别=c,
Boards=GetDiscussion\u boardsByCategory(c.ID).ToList()
}).ToDictionary(i=>i.Category,i=>i.Boards.ToList());
}
这是在上述函数中使用的另一个有效函数

public IQueryable<discussion_board> GetDiscussion_boardsByCategory(int CategoryID)
{
    return this.ObjectContext.discussion_boards.Where(e => e.CategoryID == CategoryID);
}
public IQueryable<discussion_category> GetDiscussion_categories()
{
    return this.ObjectContext.discussion_categories;
}
public IQueryable GetDiscussion\u boardsByCategory(int CategoryID)
{
返回this.ObjectContext.commission_uboards.Where(e=>e.CategoryID==CategoryID);
}
公共IQueryable GetDiscussion_categories()
{
返回this.ObjectContext.discussion\u类别;
}
我需要将其作为返回类型:

IQueryable<System.Collections.Generic.Dictionary<discussion_category, List<discussion_board>>>
IQueryable
谢谢朋友们

由于您正在调用,您的方法将返回一个
字典,而不是
IQueryable

公共词典
GetDiscussion_类别与Boards()
{
// ...
}
如果您确实想要返回一个
IQueryable
,您可以编写如下内容:

public IQueryable<Dictionary<discussion_category, List<discussion_board>>>
GetDiscussion_categoriesWithBoards()
{
    return new[] {
        GetDiscussion_categories().Select(c => new {
            Category = c,
            Boards = GetDiscussion_boardsByCategory(c.ID).ToList()
        }).ToDictionary(i => i.Category, i => i.Boards.ToList())
    }.AsQueryable();
}
公共IQueryable
GetDiscussion_类别与Boards()
{
返回新的[]{
GetDiscussion_categories()。选择(c=>new{
类别=c,
Boards=GetDiscussion\u boardsByCategory(c.ID).ToList()
}).ToDictionary(i=>i.Category,i=>i.Boards.ToList())
}.AsQueryable();
}
由于您正在调用,您的方法将返回一个
字典,而不是
IQueryable

公共词典
GetDiscussion_类别与Boards()
{
// ...
}
如果您确实想要返回一个
IQueryable
,您可以编写如下内容:

public IQueryable<Dictionary<discussion_category, List<discussion_board>>>
GetDiscussion_categoriesWithBoards()
{
    return new[] {
        GetDiscussion_categories().Select(c => new {
            Category = c,
            Boards = GetDiscussion_boardsByCategory(c.ID).ToList()
        }).ToDictionary(i => i.Category, i => i.Boards.ToList())
    }.AsQueryable();
}
公共IQueryable
GetDiscussion_类别与Boards()
{
返回新的[]{
GetDiscussion_categories()。选择(c=>new{
类别=c,
Boards=GetDiscussion\u boardsByCategory(c.ID).ToList()
}).ToDictionary(i=>i.Category,i=>i.Boards.ToList())
}.AsQueryable();
}

您是否在询问lambda的返回类型?它看起来像是一个
字典

你在问lambda的返回类型是什么吗?它看起来是一个
字典

返回类型为:

System.Collections.Generic.Dictionary<discussion_category, List<discussion_board>>
System.Collections.Generic.Dictionary

由于ToDictionary的返回类型是Dictionary对象,而不是Dictionary的Iqueryable,因此返回类型将为:

System.Collections.Generic.Dictionary<discussion_category, List<discussion_board>>
System.Collections.Generic.Dictionary

由于ToDictionary的返回类型是Dictionary object,而不是Dictionary的Iqueryable

似乎此函数将返回:

Dictionary<Category, List<Board>>
字典

此函数似乎将返回:

Dictionary<Category, List<Board>>
字典
我找到了答案:)

public IQueryable GetDiscussion\u分类与boards()
{
返回(GetDiscussion_categories()。选择(c=>
刚出现的
{
类别=c,
Boards=GetDiscussion\u boardsByCategory(c.ID).ToList()
}).ToDictionary(i=>i.Category,i=>i.Boards.ToList()).AsQueryable()作为IQueryable;
}
这就是解决方案:)

感谢您的帮助您的问题和答案引导我解决了这个问题:)

我找到了答案:)

public IQueryable GetDiscussion\u分类与boards()
{
返回(GetDiscussion_categories()。选择(c=>
刚出现的
{
类别=c,
Boards=GetDiscussion\u boardsByCategory(c.ID).ToList()
}).ToDictionary(i=>i.Category,i=>i.Boards.ToList()).AsQueryable()作为IQueryable;
}
这就是解决方案:)


感谢您的帮助您的问题和回答引导我解决了这个问题:)

GetDiscussion\u类别的返回类型是什么?它的IQueryable John什么是GetDiscussion\u类别的返回类型?它的IQueryable John