通过更改其所有元素来更新列表

时间:2015-04-23 13:14:06

标签: c# linq list

我有这3个清单。

public List<Rectangle> CoTree;
public List<Rectangle> CoRock;
public List<Rectangle> PlayerBlock = new List<Rectangle>();

在更新方法中,我想要更改两个列表中的所有元素(CoTreeCoRock),并将两个列表放在PlayerBlock lits中,以便更改所有元素在PlayerBlock

CoTree=tree.HitBox.FindAll(item => item.Intersects(player.HitBox));
CoRock=rock.HitBox.FindAll(item => item.Intersects(player.HitBox));

// what I need is PlayerBlock = CoTree+CoRock;

2 个答案:

答案 0 :(得分:2)

我不知道某个项目是否可以同时出现在CoTreeCoRock中。如果可以,您应该使用Union来获取仅包含每个元素的列表:

PlayerBlock = CoTree.Union(CoRock).ToList();

如果PlayerBlock中元素出现两次没问题,您可以使用Concat

PlayerBlock = CoTree.Concat(CoRock).ToList();

答案 1 :(得分:0)

您应该使用CoTree.Concat(CoRock)方法。

您应该使用ToList()然后使用{{1}}转换为列表