我有两个集合,我必须进行连接才能得到一个值,但是当我试图让它抛出错误时。
//代码:
Dim ExclusiveComment As ExclusiveComments = Nothing
ExclusiveComment = From ExclusiveCommentLinq In Me.ExclusiveCommentsCollection
Join ExistingCommentsLinq In Me.CombinedExclusiveCommentsCollection On ExclusiveCommentLinq.CommentDescription Equals ExistingCommentsLinq(0)
Select ExclusiveCommentLinq
在上面的代码中,
ExclusiveCommentsCollection
=班级集合(ExclusiveComments)
CombinedExclusiveCommentsCollection
=常规字符串集合(单列)
两个集合都有公共列“CommentDescription
”,我需要从ExclusiveCommentsCollection
获取值。
你能告诉我我错在哪里以及如何实现这个目标吗?
错误:
选项严格禁止从'System.collections.generic.ienumarable(对ExclusiveComments到ExclusiveComments)的隐式转换
答案 0 :(得分:2)
问题是连接总是会产生对象的“列表”,即使该列表只包含一个对象。在这种情况下,您只需要在末尾使用“FirstOrDefault”限定查询,以表明您只想使用一个结果。
Dim ExclusiveComment As ExclusiveComments = Nothing
ExclusiveComment = (From ExclusiveCommentLinq In Me.ExclusiveCommentsCollection
Join ExistingCommentsLinq In Me.CombinedExclusiveCommentsCollection On ExclusiveCommentLinq.CommentDescription Equals ExistingCommentsLinq(0)
Select ExclusiveCommentLinq).FirstOrDefault