Linq check condition in where clause if field can be null

I have question - how to check condition in where clause even when item has no reference?

Most basic way - I am checking field from my Class, which can be null. When I just check it in that way it will return Null Reference Exception

 var soldOutProducts = from p in list 
            where p.destinataire.StartsWith("D") 
            select p; 
Jon Skeet
people
quotationmark

Just check for null first, just as you would if you were writing normal C# code in a loop.

where p.destinataire != null && p.destinataire.StartsWith("D")

If p itself can be null (i.e. your list can contain null elements) then you need to check for that too:

where p != null && p.destinataire != null && p.destinataire.StartsWith("D")

Note that if your query expression is just doing filtering, you might want to use dot notation instead:

var soldOutProducts = list.Where(p => p.destinataire != null && 
                                      p.destinataire.StartsWith("D"));

Query expressions are really beneficial when the query gets complicated - particularly with joins and grouping.

people

See more on this question at Stackoverflow