似乎大多数LINQ都是用lambda表达式编写的。我该如何使用Lambda重写此linq,有点混淆样式(尤其是join)?
var responses =
from c in questionRepository.GetReponses()
join o in questionRepository.GetQuestions() on
c.QuestionID equals o.QuestionID
where c.UserID == 9999
orderby o.DisplayOrder
select new { o.QuestionText, c.AnswerValue };
最佳答案
我更喜欢Joins的“LINQ语法”,因为我认为它看起来更干净。
无论如何,这是将LINQ-join转换为“Lambda Expression” -join的方法。
翻译为:
from a in AA
join b in BB on
a.Y equals b.Y
select new {a, b}
是:
AA.Join( // L
BB, // R
a => a.Y, b => b.Y, // L -> join value, R -> join value
(a, b) => new {a, b}) // L+R result
其他LINQ关键字的转换要简单得多(例如
OrderBy(u => u.DisplayOrder)
,而只是与.
“链接在一起”。-试试吧!
关于linq - 如何使用带有lambda表达式的join重写此LINQ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13692015/