使用LINQ在集合中内部联接

时间:2013-08-12 12:36:16

标签: .net vb.net linq collections

我有两个集合,我必须进行连接才能得到一个值,但是当我试图让它抛出错误时。

//代码:

 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)的隐式转换

1 个答案:

答案 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