A sequência não contém elementos

08/04/2014

0

Esse é o erro que dá.

An exception of type 'System.InvalidOperationException' occurred in System.Core.dll but was not handled in user code

Abaixo a minha expressão que gerou o erro:

if (refeicoes != null)
                {
    
                    for (int i = 0; i < refeicoes.Length; i++)
                    {
                        lista.Add(pesquisaHotel.Where(x => x.SubOfferGroups.Select(a => a.AnswerOffersList[0].IncludesItems).Contains(refeicoes[i])).Select(a=> a.ProductId).First());
                        lista.Add(pesquisaHotel.Where(x => x.SubOfferGroups.Select(a => a.AnswerOffersList[0].IncludesFoodPlans).Contains(refeicoes[i])).Select(a => a.ProductId).First());
                    }
    
                    pesquisaHotel = pesquisaHotel.Where(x => lista.Contains(x.ProductId)).ToArray();

}

O erro aparece em cima da linha refeicoes. Esse array tem um valor, que nesse caso é: "Breakfast for 2". Alguém tem uma dica para resolver esse pepino?
Pjava

Pjava

Responder

Posts

08/04/2014

Pjava

Olá a todos. Descobri o motivo. Acontece que em minha expressão lambda, essa linha ...a.AnswerOffersList[0].IncludesItems... o includesitems estava vindo vazia. Como eu retornava um First(), ele gerava a exception. Troquei para FirstOrDefault(), pois me disseram que ele retorna um vazio e não gera uma exception como o First(). Fiz isso e resolveu a questão. Obrigado.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar