首页 > 解决方案 > 如果 2 IEnumerable包含相同的项目,该项目是否在内存中重复?

问题描述

我需要从 IListSource 获取项目并将它们添加到 ObservableCollection,这会重复内存量还是仅由 2 个 IEnumerable 引用该项目?

public ObservableCollection<T> ObservableData { 
  get => _ObservableData; 
  set => _ObservableData = value; 
}

public void MoveToPage(int PageNumber) {
  this.CurrentPage = PageNumber;
  IEnumerable<T> InvokeData = ((IListSource)this).GetList().Cast<T>();

  foreach (var item in InvokeData) {
    this.ObservableData.Add(item);
  }
}

标签: c#ienumerableobservablecollection

解决方案


一句话—​​—不。

您有两个对同一对象的引用。显然,引用本身会占用内存,但您不会将对象所需的内存加倍。


推荐阅读