我有以下对象结构
一个小组有很多团队,一个团队有很多玩家
m_Groups
是可观察的组集合
我正在尝试获取给定团体名称和玩家姓名的团队名称 我可以像 in for every 那样执行此操作,但在将其转换为 LINQ 时遇到问题:
Dim retVal As String = String.empty
For Each g In m_Groups
For Each t In g.Teams
For Each p In t.Players
If p.PlayerName.Equals(name) Then
retVal = t.TeamName
End If
Next
Next
Next
最佳答案
Dim teamName = (From group in Groups _
From team In group.Teams _
From player In team.Players _
Where player.PlayerName.Equals(name) _
Select team.TeamName).FirstOrDefault()
(免责声明:我主要猜测上面的 VB 语法。)
此外,我处理像您这样的情况的实际方法是为玩家提供一个 Team
属性,并在加载后将它们连接一次,而不是每次都进行查找。 (假设玩家分配不改变,双向连接将需要一些样板来维护。)
关于vb.net - 将嵌套 for 循环转换为 LINQ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15488917/