LINQ возвращает количество, даже если список пуст - PullRequest
0 голосов
/ 13 сентября 2011

У меня есть этот блок кода внутри другого оператора 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, я даю счетчик для видеосвязи как 1, даже если m.VideoLinks равен нулю.

Итак, как избежать подсчета 1, если m.VideoLinks равен нулю

Ответы [ 3 ]

6 голосов
/ 13 сентября 2011

DefaultIfEmpty даст вам значение по умолчанию. Он считается как элемент, когда вы вызываете ToList () для него ... таким образом, ваш счет равен 1.

2 голосов
/ 13 сентября 2011

Похоже, вы используете linq-to-objects, поэтому вы должны добавить 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()
1 голос
/ 13 сентября 2011

wllmsaccnt верен - ваша проблема - это часть DefaultIfEmpty вашего оператора. По определению вы запрашиваете, чтобы в коллекции был хотя бы один элемент в соответствии с определением этого метода:

Возвращает элементы указанной последовательности или указанного значения в одноэлементной коллекции, если последовательность пуста

Я думаю, что важный вопрос здесь в том, какое исключение вы получаете, когда не используете DefaultIfEmpty? Если вы нам это скажете, возможно, мы поможем вам избежать этого ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...