我有一个lambda表达式的问题我有一些相关的表我需要选择一些带有count和avarage函数的结果这里是示例类
add_filter ( 'wc_order_is_editable', 'majemedia_add_order_statuses_to_editable' );
function majemedia_add_order_statuses_to_editable () {
return TRUE;
}
我需要选择它们进入
class Course{
public long id;
public string name;
public virtual ICollection<Chapter> chapters;
}
class Chapter{
public long id;
public virtual ICollection<Videos> videos;
public virtual ICollection<Files> files;
}
如何选择lambda表达式,如
select new{
videoCount = [number of video releated to course],
fileCount = [number of file releated to course],
}
感谢您的帮助。
块引用
答案 0 :(得分:2)
您的代码中有错误:在public virtual ICollection<Chapter>
之后您没有属性名称。我认为它被称为章节。
视频和文件属性也是如此。
试试这个:
var result = courses.Select(c => new
{
videoCount = c.chapters.Sum(chapter => chapter.Videos.Count()),
fileCount = c.chapters.Sum(chapter => chapter.Files.Count())
});
您Sum
每章中的视频数量,以获得该课程的总数。
答案 1 :(得分:0)
试试这个:
var courses = new List<Course>();
courses.Select(x=> new {
VideoCount = x.Chapters.Sum(v=>v.Videos.Count),
FilesCount = x.Chapters.Sum(v=>v.Files.Count)
});