Vb.net LINQ-在集合中选择一个*类型化*项
我可以使用LINQ返回集合中与集合中的项类型相同的项吗?我是一个试图避免循环的傻瓜Vb.net LINQ-在集合中选择一个*类型化*项,vb.net,linq,Vb.net,Linq,我可以使用LINQ返回集合中与集合中的项类型相同的项吗?我是一个试图避免循环的傻瓜 Dim mostRecentlyCreatedQuestionnaire As ParentQuestionnaireItem = CType((From P In questionnaireCollection Order By P.Metadata.CreateDate Descending).Take(1), ParentQuestionnaireItem) 当我包含CTYPE函数时,会出现“
Dim mostRecentlyCreatedQuestionnaire As ParentQuestionnaireItem =
CType((From P In questionnaireCollection Order By P.Metadata.CreateDate Descending).Take(1), ParentQuestionnaireItem)
当我包含CTYPE函数时,会出现“无法强制转换”错误。我有点期待这个错误,但我想如果我不能做到这一点,LINQ的有用性就会降低,因此我认为一定有一种方法…只要做到这一点:
Dim mostRecentlyCreatedQuestionnaire As ParentQuestionnaireItem =
(From P In questionnaireCollection Order By P.Metadata.CreateDate Descending).FirstOrDefault()
您的方法的问题是,Take
返回一个可枚举值,即使只取1
我的回答假设问题回忆
是强类型的。只需执行以下操作:
Dim mostRecentlyCreatedQuestionnaire As ParentQuestionnaireItem =
(From P In questionnaireCollection Order By P.Metadata.CreateDate Descending).FirstOrDefault()
您的方法的问题是,Take
返回一个可枚举值,即使只取1
我的回答假设问题回忆
是强类型的。Take(1)不起作用的原因是Take(1)返回IENERABLE(属于TSource)
或IQueryable(属于TSource)
根据查询,为什么首先返回TSource
Dim mostRecentlyCreatedQuestionnaire As ParentQuestionnaireItem =
DirectCast((From P In questionnaireCollection Order By P.Metadata.CreateDate Descending).First, ParentQuestionnaireItem)
Take(1)不起作用的原因是Take(1)返回一个IEneUnrable(属于TSource)
或IQueryable(属于TSource)
根据查询,为什么首先返回类型为TSource
Dim mostRecentlyCreatedQuestionnaire As ParentQuestionnaireItem =
DirectCast((From P In questionnaireCollection Order By P.Metadata.CreateDate Descending).First, ParentQuestionnaireItem)
另一个答案投了赞成票,但你的答案提供了更多的信息。Ty@Velika,不客气,另外,
DirectCast
比CType
其他被投票通过的答案要好一点,但您的答案提供了更多的信息。Ty@Velika,不客气,而且DirectCast
比CType