Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 即使列表为空,LINQ也返回count_C#_.net_Linq_Linq To Sql - Fatal编程技术网

C# 即使列表为空,LINQ也返回count

C# 即使列表为空,LINQ也返回count,c#,.net,linq,linq-to-sql,C#,.net,Linq,Linq To Sql,我在另一个LINQ语句中有这段代码 VideoLinks = (from video in m.VideoLinks.DefaultIfEmpty(new VideoGallery()) orderby video.CreatedDate select new VideoGallery()

我在另一个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


那么,如果m.VideoLinks为null,那么如何避免得到计数1呢。当您对其调用ToList()时,它将计为一个项目…因此您的计数为1。

这看起来您正在使用linq to对象,因此您应该在where video!=空

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时,您会收到什么异常?如果您告诉我们,也许我们可以帮助您避免…

我的问题是如何避免?不要使用DefaultIfEmpty,就是这样。在我回答后您更改了您的问题?那不酷。呵呵,没问题。通常,如果你需要一个新问题,你应该重新措辞,只包含你需要知道的内容,但在这种情况下,你很难重新措辞,因为你想把它放在上下文中。我想你没有一个干净的方法来把它变成一个新问题。太好了。从来没有想过条件在哪里。你收到的例外是什么?我不明白投票失败的原因。我的问题不是关于异常或如何解决异常,而是关于计数以及如何使其为零。例外情况是对象引用并没有设置为对象的实例,Praneth,我并没有否决它。不知道原因。