Como: Lidar com valores nulo em expressões de consulta (guia de programação translation from VPE for Csharp)
Este exemplo mostra como tratar os possíveis valores nulo em coleções de fonte.Uma coleção de objetos, sistema autônomo um IEnumerable<T> podem conter elementos cujo valor é nulo.Se uma coleção de fonte é nula ou contiver um elemento cujo valor é nulo e sua consulta não processa valores nulos, um NullReferenceException será gerada quando você executa a consulta.
Exemplo
Você pode codificar defensively para evitar um nulo exceção de referência, conforme mostrado no exemplo a seguir:
var query1 =
from c in categories
where c != null
join p in products on c.ID equals
(p == null ? null : p.CategoryID)
select new { Category = c.Name, Name = p.Name };
No exemplo anterior, a where cláusula filtra todos os elementos nulo na sequência de categorias. Essa técnica é independente da verificação de nula na cláusula de unir.A expressão condicional com nulo neste exemplo funciona porque Products.CategoryID é do tipo int? qual é a forma abreviada de Nullable<int>.
Em uma cláusula de unir, se houver apenas uma das teclas de comparação de um tipo de valor nulo, você pode usar o Outros para um tipo que permite valor nulo na expressão de consulta.O exemplo a seguir, suponha que EmployeeID é uma coluna que contém valores de tipo int?:
void TestMethod(Northwind db)
{
var query =
from o in db.Orders
join e in db.Employees
on o.EmployeeID equals (int?)e.EmployeeID
select new { o.OrderID, e.FirstName };
}
Consulte também
Tarefas
Conceitos
Expressões de consulta do LINQ (guia de programação translation from VPE for Csharp)