带有Lambda语句的IQueryable返回类型
本文关键字:IQueryable 返回类型 语句 Lambda 带有 | 更新日期: 2023-09-27 17:58:23
我面临这个函数的返回类型问题,而且还没有真正解决问题,有人能帮我吗?
的功能来了
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<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;
}
我需要这是返回类型:
IQueryable<System.Collections.Generic.Dictionary<discussion_category, List<discussion_board>>>
谢谢朋友们!
由于您正在调用ToDictionary(),因此您的方法返回Dictionary<>
,而不是IQueryable<>
:
public Dictionary<discussion_category, List<discussion_board>>
GetDiscussion_categoriesWithBoards()
{
// ...
}
如果你绝对想返回一个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();
}
返回类型为:
System.Collections.Generic.Dictionary<discussion_category, List<discussion_board>>
因为ToDictionary的返回类型是Dictionary对象,而不是Dictionary 的Iqueryable
似乎此函数将返回:
Dictionary<Category, List<Board>>
我找到了答案:)
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())).AsQueryable() as IQueryable<System.Collections.Generic.Dictionary<discussion_category, List<discussion_board>>>;
}
这就是解决方案:)
感谢您的帮助,您的问题和答案让我解决了这个问题:)
您是否在问lambda的返回类型是什么?它看起来是Dictionary<Category,List<Board>>