【发布时间】:2015-05-30 06:08:21
【问题描述】:
我有一个项目列表,其中包含更多项目 ICollection,我想知道是否有人可以帮助我使用 lambda 表达式来过滤此列表。
我的列表如下所示:
Public Class ItemDto
Public Property ItemId As Integer
Public Property ItemLs As ICollection(Of ItemLDto) = New HashSet(Of ItemLDto)
End Class
快速浏览一下对象的外观
ItemID = 1
ItemLs (Id=1, Type=2)
ItemLs (Id=2, Type=3)
ItemID = 2
ItemLs (Id=1, Type=2)
ItemLs (Id=2, Type=3)
ItemID = 3
ItemLs (Id=1, Type=2)
ItemLs (Id=2, Type=3)`
我想要做的是创建一个 LINQ 查询,它将返回以下结果。基本上用Type=3 过滤掉所有ItemLs。我不知道为什么这让我感到困惑,因为它似乎应该如此简单
ItemID = 1
ItemLs (Id=2, Type=3)
ItemID = 2
ItemLs (Id=2, Type=3)
ItemID = 3
ItemLs (Id=2, Type=3)
试图避免将其放入循环并创建一个新对象,但目前我使用这个不理想的查询循环遍历它。
item.ItemsLs.FirstOrDefault(Function(m) m.Type = 3)
感谢您的指点
【问题讨论】: