网上的咋看不懂
请问
Expression<Func<Achivement, bool>> expression = c => c.JournalId == indexJournal.JournalId; if (indexJournal.Year != null) { expression = c => c.JournalId == indexJournal.JournalId && c.Year == indexJournal.Year; //Expression. //Expression<Func<Achivement, bool>> expression3 = Expression.And(expression, expression).; }
我是不会就用这么蠢的办法 ,请问 怎么把两个拼接起来
Expression<Func<Achivement, bool>> expression = c => c.JournalId == indexJournal.JournalId; Expression<Func<Achivement, bool>> expression2 = c =>c.Year == indexJournal.Year;
lambda Expression的组合会比较麻烦一点,要求Parameter相同,你这个倒是符合条件了。
但是我看了看,代码倒是不会象上面写的那么丑,但是太长了,如果要达到通用性标准,可能需要几百行代码。
你如果有兴趣研究的话,可以看看PredicateBuilder(在LinqKit)里面。
不懂
不妨试试三元表达式?
Expression<Func<Achivement, bool>> expression2 = c =>c.Year != null ? c => c.JournalId == indexJournal.JournalId && c.Year == indexJournal.Year : c.JournalId == indexJournal.JournalId ;
我去 不用if用三元 拿给我多个用几元 ?
@keeppuching: 你再仔细的看看你问的,怎么把两个拼接起来,你有提到多个?