Linq - check condition in where clause if field can be null

后端 未结 3 1271
攒了一身酷
攒了一身酷 2021-01-26 11:55

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 j

3条回答
  •  北恋
    北恋 (楼主)
    2021-01-26 12:37

    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.

提交回复
热议问题