我需要存儲兩個變量,然後檢查它們是否沒有更改。創建列表副本
List<CatalogInfo> list_catalogs = new List<CatalogInfo>();
List<FileInfo> list_files = new List<FileInfo>();
List<CatalogInfo> list_catalogs_for_check_changed = new List<CatalogInfo>();
List<FileInfo> list_files_check_changed = new List<FileInfo>();
當我這樣做:
list_catalogs_for_check_changed = list_catalogs;
list_files_check_changed = list_files;
但是當我加入list_catalogs或list_files項目我debager條件的項目添加到list_catalogs_for_check_changed或list_files_check_changed看到。爲什麼???我不添加項目與變量。
list_catalogs.Add(new CatalogInfo() { Action = "Create", Path = folderBrowserDialog1.SelectedPath });
您需要了解值類型和引用類型之間的區別。 http://www.albahari.com/valuevsreftypes.aspx –
[C#中的深層克隆對象]的可能重複(http://stackoverflow.com/questions/78536/deep-cloning-objects-in-c-sharp) –
@HenkHolterman這個問題有類似的答案,但不完全相同的問題。 –