çæ¡ï¼
λå¸è
åæ¯è¡¨ä¸æåºç¬¬åä¸ä½çåæ¯ï¼è±è¯å称为LambdaãLambdaï¼å¤§åÎï¼å°åλï¼è¯»é³ï¼lan bï¼mï¼ daï¼å
°äº©è¾¾ï¼['læ;mdə]ï¼æ¯ç¬¬åä¸ä¸ªå¸è
åæ¯ã
ä¸ãæ©å
ç¥è¯
大åÎç¨äºï¼
ç²åç©çå¦ä¸ï¼Îéåç符å·ï¼
å°åλç¨äºï¼
ç©çä¸çæ³¢é¿ç¬¦å·ï¼
æ¾å°å¦çè¡°å常æ°ï¼
线æ§ä»£æ°ä¸çç¹å¾å¼ï¼
西éå°åæ¯ç Ð æ¯ç± Lambda æ¼åèæã
äºã使ç¨æ
åµ
1ãæµè¡ç¬¦å·ç¼è¾
â λ â形似ä¸ä¸ªåææå
å¿ï¼ç¬èªè¡èµ°ç人ï¼è¡¨ç¤ºâ失æãæ å¥ãå¤ç¬ãä½è°ãè·¯è¿âä¹æç符å·ï¼æå
æµè¡äºä»åå¥ä¾ ä¼ ã
2ãç¼ç¨è¯è¨ç¼è¾
计ç®æºç¼ç¨è¯è¨
Lambda 表达å¼ãLambda 表达å¼âæ¯ä¸ä¸ªå¿åå½æ°ï¼å®å¯ä»¥å
å«è¡¨è¾¾å¼åè¯å¥ï¼å¹¶ä¸å¯ç¨äºå建å§ææ表达å¼ç®å½æ ç±»åã
ææ Lambda 表达å¼é½ä½¿ç¨ Lambda è¿ç®ç¬¦ =>ï¼ï¼è¯¥è¿ç®ç¬¦è¯»ä¸ºâgoes toâã该 Lambda è¿ç®ç¬¦ç左边æ¯è¾å
¥åæ°ï¼å¦ææï¼ï¼å³è¾¹å
å«è¡¨è¾¾å¼æè¯å¥åãLambda è¡¨è¾¾å¼ x => x * x 读ä½âx goes to x times xâãå¯ä»¥å°æ¤è¡¨è¾¾å¼åé
ç»å§æç±»åï¼å¦ä¸æ示ï¼
delegate int del(int i);del myDelegate = x => x * x;int j = myDelegateâ¸ï¼ //j = 25ã
3ãå建表达å¼ç®å½æ ç±»å
å¤å¶
using System.Linq.Expressions;// ...Expression<del> = x => x * x;
=> è¿ç®ç¬¦å
·æä¸èµå¼è¿ç®ç¬¦ (=) ç¸åçä¼å
级ï¼å¹¶ä¸æ¯å³ç»åè¿ç®ç¬¦ã
Lambda ç¨å¨åºäºæ¹æ³ç LINQ æ¥è¯¢ä¸ï¼ä½ä¸ºè¯¸å¦Whereå Where çæ åæ¥è¯¢è¿ç®ç¬¦æ¹æ³çåæ°ã
使ç¨åºäºæ¹æ³çè¯æ³å¨ Enumerable ç±»ä¸è°ç¨ Where æ¹æ³æ¶ï¼åå¨ LINQ to Objects å LINQ to XML ä¸é£æ ·ï¼ï¼åæ°æ¯å§æç±»å System.Func<T,TResult>ï¼ãä½¿ç¨ Lambda 表达å¼å建å§ææ为æ¹ä¾¿ãä¾å¦ï¼å½æ¨å¨ System.Linq.Queryable ç±»ä¸è°ç¨ç¸åçæ¹æ³æ¶ï¼åå¨ LINQ to SQL ä¸é£æ ·ï¼ï¼ååæ°ç±»åæ¯System.Linq.Expressions.Expression<Func>ï¼ï¼å
¶ä¸ Func æ¯å
å«è³å¤äºä¸ªè¾å
¥åæ°çä»»ä½ Func å§æãåæ ·ï¼Lambda 表达å¼åªæ¯ä¸ç§ç¨äºæé 表达å¼ç®å½æ çé常ç®ç»çæ¹å¼ã尽管äºå®ä¸éè¿ Lambda å建ç对象çç±»åæ¯ä¸åçï¼ä½ Lambda 使å¾Whereè°ç¨çèµ·æ¥ç±»ä¼¼ã
温馨提示:答案为网友推荐,仅供参考