//Use LINQ to join the selected games with dSourceGames on Matching IDs
List<Game> games =
from row in dgv.Rows
join game in dSourceGames on dSourceGames.Values.Select(x=>x.ID).Contains(row.Cells[2].Value.ToString()) equals true
select game;
//select new {new Game(game.Title,game.ID,game.Region,game.Extension,game.Size,game.Path) };
因此,我有一个字典<int,Game>和一个DataGridView显示有关相同游戏的信息。游戏是一种自定义数据类型。咄..
我希望不是遍历每一行,找出它是否被选中,获取 ID,将它们添加到列表中。将该列表与自定义数据类型字典进行比较,并对结果列表运行 foreach。
游戏数据类型包含 DataGridView 中显示的更多信息,并且没有 FULL FULL 构造函数。
我已经使用 C# 很长时间了,但已经离开它一段时间了。随着新的语言更新和框架,学习更多已经发生了变化。更不用说只是从实践中摸出一点点了。
任何帮助或建议都会有所帮助。
我认为最好使用from
子句而不是join
子句。
from row in dgv.Rows
from game in dSourceGames.Values
where game.Id == row.Cells[2].Value.ToString()
select game;
这使用内部联接来接受具有Id
的game
,该是row.Cells[2]
Value
之一,并拒绝所有其他联接。或者你可以说,这接受row.Cells[2].Value
包含在game.Id
s以及game
的其他相应属性。