C# 设置集合和添加方法之间的区别

C# 设置集合和添加方法之间的区别,c#,list,C#,List,我有两个列表,我想将其中一个设置为另一个: var entities = new List<Entity>() { new Entity(), new Entity(), new Entity() }; List<Entity> newCollection = new List<Entity>(); 2: 有很多方法,但我想使用foreach,因为我想订阅实体类的事件,然后将其添加到集合中。 我想知道这些方法之间有什么大的区别吗? 使用foreach时是否

我有两个列表,我想将其中一个设置为另一个:

var entities = new List<Entity>() { new Entity(), new Entity(), new Entity() };

List<Entity> newCollection = new List<Entity>();
2:

有很多方法,但我想使用foreach,因为我想订阅实体类的事件,然后将其添加到集合中。 我想知道这些方法之间有什么大的区别吗?
使用foreach时是否会出现性能问题

您可以在实体上附加事件,然后以以下方式将其添加到另一个列表中:

IList<Entity> copy = entities.Select(entity => {
    entity.OnDeleted += Entity_Deleted;
    return entity;
}).ToList();
return entity.Copy();

目前,绩效不应该是您主要关心的问题,因为正如评论中所建议的,您似乎错过了一些关键概念,例如,对这些知识的了解可能会从根本上改变您进一步的问题。

查找参考资料。这是两个完全不同的概念。请注意,您也可以使用“newCollection.AddRangeentities”,但这不是主题:P1根本没有创建副本,您只有两个变量指向同一个列表。您的第一个代码示例只是调用.Add方法的语法糖,因此您已经将它们添加到了集合中。您可以只执行entities.ForEachentity=>entity.OnDeleted+=entity_Deleted;,而不是创建对集合的新引用;,如果您想复制列表,那么可以执行var newCollection=entities.ToList;否则,你的问题就不太清楚了。如果您有性能问题,请说明问题所在。
IList<Entity> copy = entities.Select(entity => {
    entity.OnDeleted += Entity_Deleted;
    return entity;
}).ToList();
return entity.Copy();