即使列表为空,LINQ也会返回count
本文关键字:返回 count LINQ 列表 | 更新日期: 2023-09-27 18:08:29
我把这段代码放在另一个LINQ语句中。
VideoLinks = (from video in m.VideoLinks.DefaultIfEmpty(new VideoGallery())
orderby video.CreatedDate
select new VideoGallery()
{
Source = video.Source,
Type = video.Type,
Links = video.Links,
Title = video.Title
}).ToList()
不幸的是,如果不使用DefaultIfEmpty,它通过我是一个异常。如果我使用DefaultIfEmpty,即使m.VideoLinks为空,我也会将videolinks计数为1。
那么现在如何避免计数1如果m.v ideollinks是null
DefaultIfEmpty将给你一个默认值。当你对它调用ToList()时,它被视为一个项目…因此你的计数是1。
看起来您正在使用链接到对象,所以您应该添加一个where video != null
VideoLinks = (from video in m.VideoLinks
where video != null
orderby video.CreatedDate
select new VideoGallery()
{
Source = video.Source,
Type = video.Type,
Links = video.Links,
Title = video.Title
}).ToList()
wllmsaccnt是正确的-您的问题是语句的"DefaultIfEmpty"部分。根据定义,根据此方法的定义,您请求集合中至少有一个项:
返回指定序列的元素或指定值在单例集合中如果序列为空
我认为这里重要的问题是,当你不使用DefaultIfEmpty时,你会收到什么异常?如果你告诉我们,也许我们可以帮你避免……