在具有自定义数据类型和 DataGridView 行的字典上使用 LINQ JOIN


//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;

这使用内部联接来接受具有Idgame,该是row.Cells[2]Value之一,并拒绝所有其他联接。或者你可以说,这接受row.Cells[2].Value包含在game.Ids以及game的其他相应属性。

最新更新