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

后端 未结 3 1270
攒了一身酷
攒了一身酷 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:24
     var soldOutProducts = from p in list 
                where p.destinataire != null && p.destinataire.StartsWith("D") 
                select p; 
    
    0 讨论(0)
  • 2021-01-26 12:26

    can you do

    var soldOutProducts = from p in list
                          where !string.IsNullOrEmpty(p.destinataire) and
                                p.destinataire.StartsWith("D")
                          select p;
    
    0 讨论(0)
  • 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.

    0 讨论(0)
提交回复
热议问题