Difference between LINQ Queries & Lambda expression

前端 未结 2 1625
耶瑟儿~
耶瑟儿~ 2020-12-31 18:10

Why to use lambda expression when we have LINQ queries just to shorten the length of code , increase the speed of development or is there any other reason which can only be

2条回答
  •  Happy的楠姐
    2020-12-31 18:39

    Query expressions only cover a small subset of the LINQ operators, and are only applicable when you have the actual expression involved to hand, rather than (say) having a Func to act as the predicate, in which case things become ugly. So instead of writing:

    Func predicate = ...; // Get predicate from somewhere
    var query = from x in collection
                where predicate(x)
                select x;
    

    I'd much rather write:

    Func predicate = ...; // Get predicate from somewhere
    var query = collection.Where(predicate);
    

    There are various other cases where using non-query expression syntax is simpler, particularly if your query only uses a single operator.

    Query expressions are effectively translated into non-query expressions, so anything you can do in query expressions can be expressed in non-query expressions. Use query expressions where they make the code simpler and more readable; don't use them where they don't.

    I have more information about how query expressions work in a blog post that you may be interested in.

提交回复
热议问题