猿问

Linq问题

string[] codes = new string[]{"2008","2009","2010"};

string ret = codes.FirstOrDefault<string>(item => item.CompareTo("2009") > 0);

为什么执行这段代码会报异常:Expression cannot contain lambda expressions

而改为:

string ret = (from c in codes where item.CompareTo("2009") > 0 select c ).FirstOrDefault();就可以执行了呢?


阿波罗的战车
浏览 320回答 2
2回答

森栏

不知为什么,你这上面的代码我可以运行.没出问题.不过你这二句虽然执行效果一样.但是并不同一意思吧.codes.where(p => item.compareTo()>0).FirstOrDefault():

眼眸繁星

扩展方法+Lambda表达式 >= LINQ
随时随地看视频慕课网APP
我要回答