我正在創建一個正在通過文件夾結構的程序。如果有什麼改變,我想寫入一個列表。我的問題是,當比較兩個列表時,我不知道如何將更改保存在lstChanges中。 if語句的語法是什麼?這是我得到了現在:C#比較兩個列表(FileData)
0
A
回答
0
假設你從最後一次迭代文件的List<FileInfo>
在lstOld
,您可以更新您的if語句
//using System.Linq;
if (!lstOld.Any(old => old.Path == f.FullName && old.ChangingDate == f.LastWriteTime))
List<>.Contains
使用默認的質量比較器。因此,創建new FileInfo
將不起作用,除非FileInfo
正確實施IEquatable<T>.Equals()
。
0
你也可以試試老式左外連接:)
var lParent = x.GetFiles();
var lChild = lstOld;
var differences = lParent.GroupJoin(
lChild,
p => p.FullName,
c => c.LastWriteTime,
(p, g) => g
.Select(c => new { FullName = p.FullName, LastWriteTime = c.LastWriteTime})
.DefaultIfEmpty(new { FullName = p.FullName, LastWriteTime = null}))
.SelectMany(g => g);
如果你的目標是從兩個集合收集所有唯一值,你需要的東西被稱爲完整外部聯接。對於兩個相同類型的集合,你可以使用聯盟和刪除公共部分:
lParent.Union(lChild).Except(lParent.Intersect(lChild));
相關問題
- 1. 比較兩個列表C#
- 2. 比較兩個列表C#
- 3. c#比較兩個列表/表
- 4. 比較C兩個陣列++
- 5. 比較兩個對象列表C#
- 6. 比較兩個列表在C#
- 7. 比較兩個列表,並與C#
- 8. 比較兩個列表
- 9. 比較兩個列表
- 10. 比較兩個列表?
- 11. 比較兩個列表
- 12. 比較兩個列表linq
- 13. c#列表比較器使用兩個比較元素
- 14. SQL Server:比較兩個表,兩列
- 15. Mysql的比較兩列在兩個表
- 16. 比較兩個數據表中的c#
- 17. C#比較兩個列表並更新它的列值
- 18. 比較兩個字符串列表.CSV
- 19. 比較兩個收集列表
- 20. 比較Python中xml的兩個列表
- 21. 比較兩個列表元素與LINQ
- 22. 比較兩個列表,並使用LINQ
- 23. 比較Python中的兩個列表項
- 24. Grails/CreateCriteria - 比較兩個列表
- 25. 如何比較兩個數組列表?
- 26. 比較兩個數組列表
- 27. PostgreSQL的 - 比較兩個表的列
- 28. 比較兩個列表的內容
- 29. VBA中兩個列表框的比較
- 30. 比較兩個表的行和列
舊列表永遠不會包含你正在創建內嵌的對象,你可能要檢查的屬性,而不是整個對象 – Marv
你怎麼樣將「舊」信息存儲在舊列表中?它是一個平面列表還是將包含嵌套文件? – 2017-05-30 08:19:47
@goaty即時通過讀取一個XML文件存儲它。 lstNew將在應用程序執行時覆蓋xml。 –