我可以使用LINQ返回集合中与集合中的项目相同的项目吗?我是一个试图避免循环的LINQ Noob。
Dim mostRecentlyCreatedQuestionnaire As ParentQuestionnaireItem =
CType((From P In questionnaireCollection Order By P.Metadata.CreateDate Descending).Take(1), ParentQuestionnaireItem)
当我包含CTYPE函数时,我收到“无法CAST”错误。我有点期待这个错误,但我想如果我不这样做,LINQ的用处会减少,因此假设必须有办法...
答案 0 :(得分:3)
这样做:
Dim mostRecentlyCreatedQuestionnaire As ParentQuestionnaireItem =
(From P In questionnaireCollection Order By P.Metadata.CreateDate Descending).FirstOrDefault()
您的方法存在的问题是,Take
会返回一个可枚举的内容,即使您只需使用1。
我的回答是假设questionnaireCollection
是强类型的。
答案 1 :(得分:1)
Take(1)不起作用的原因是Take(1)根据查询返回IEnunmerable(Of TSource)
或IQueryable(Of TSource)
,为什么首先返回类型为TSource
的对象
Dim mostRecentlyCreatedQuestionnaire As ParentQuestionnaireItem =
DirectCast((From P In questionnaireCollection Order By P.Metadata.CreateDate Descending).First, ParentQuestionnaireItem)