var q = (dc.tblHelpCentreQuestions.Where(c => c.userID == UserID));
q.OrderByDescending(c => c.dateSubmitted);
我只是习惯了Linq,而且我按照提交的日期对我的记录进行排序,但有人可以向我解释为什么我必须c => c.dateSubmitted
而不是仅仅传入tblHelpCentreQuestions.dateSubmitted
? c=>
做了什么以及为什么需要它?
答案 0 :(得分:3)
答案 1 :(得分:1)
q = tblHelpCentreQuestions是可枚举的。它没有dateSubmitted属性。它的元素具有该属性。 C完全代表该元素
答案 2 :(得分:1)
c=>c.dateSubmitted
是lambda expression,它们与Linq一起使用很多。在这种情况下,它是一种选择器。它定义了您的类的哪个属性可以按顺序排序。另一方面,tblHelpCentreQuestions.dateSubmitted
只是一个“值”,它不会提供有关该属性的信息。
简单地说,lambda表达式是一种匿名方法。方法需要参数,这就是c=>
的用途。如果你有一个带有两个参数的方法(比如发送者和args),你会得到像(sender, args)=>
这样的东西。有 Expression Lambdas ,它有一个表达式作为它们的主体(就像你的例子一样),和语句Lambdas ,它可以有多个指令(或语句) ,因此需要块来分隔它。 (sender, args)=>{ ... }
。它可能有也可能没有返回值。
希望这会有所帮助:)