tengo una List<Item>
GroupBy con Id de posible objeto nulo
Cada artículo tiene un programa, que tiene un ID.
Si un artículo aún no está vinculada a un programa, Es programa será nulo.
me gustaría agrupar todos los artículos por su ID de programa
Eso es lo que he intentado:
var listaAgrupada = client.ListarItens(null, null, null).GroupBy(x => x.Programa.Id).ToList();
Esto funciona si todos los artículos tienen un programa. Pero si un programa es nulo, se lanza una excepción System.NullReferenceException:
mensaje = "Referencia a objeto no establecida como una instancia de un objeto".
Creo que esto se debe a que, como Program es nulo, no puedo acceder a su Id.
Necesito todos los artículos, incluso si su programa es nulo (y me gustaría que agrupan por el programa, ya sea nula), por lo que su exclusión no es una opción.
He pensado en dos posibles soluciones, pero no estoy seguro de cómo hacer cualquiera de ellos:
Una de ellas sería algo como esto GroupBy(x => x.Programa == null || x.Programa.Id)
(que no funciona)
El otro sería añadir un objeto de programa vacío donde el curso es nula, pero no sé cómo hacer esto
por supuesto, también estoy abierto a otras soluciones
Gracias de antemano
Cuando haga un elemento de la lista, asígnele un valor 'nulo' que nunca usará como VACÍO para una cadena o -99999 para un int –