【发布时间】:2015-11-25 08:48:12
【问题描述】:
我知道关于 SO 的这个主题有很多通用问题。即使我尝试了一堆,但没有成功。 这是我用于合并的小代码
var existingFileDetails = XmlParser<NcSyncManifestXml>.Deserialize(RemoteManifestFile).Files;
var newList = existingFileDetails
.Union(updatedFileDetails)
.OrderByDescending(c => c.LastModifiedDate)
.ToList();
我有两个列表,即List<FileDetails>.
FileDetails 是一个包含三个东西Name, Md5Hash, LastModified 的类。这里我有两个列表,
List<FileDetails> UpdatedList = having 4-5 items of modified files,
and another
List<FileDetails> ExistingList = having 100 files
场景
UpdatedList 中的文件可能存在于ExistingList 中。如果他们确实存在,他们有不同的
1. MD5Hash and
2. LastModifiedDate
要求[更新]
假设:
ExistingList = {[{FileName=xyx.txt,MD5=1,LastModified=12/12/2013}], [{FileName=abc.txt,MD5=11,LastModified=12/13/2013}],[{FileName=def.txt,MD5=111,LastModified=12/14/2013}],
[{FileName=detf.txt,MD5=1111,LastModified=12/14/2013}]}
现在我收到一个新的更新文件列表,其中 abc.txt 和 def.txt 发生了变化,并添加了一个新文件 Run.txt
UpdatedList ={[{FileName=abc.txt,MD5=1fsd431,LastModified=12/16/2013}],[{FileName=def.txt,MD5=asdasd34243,LastModified=12/16/2013}]},[{FileName=Run.txt,MD5=sdf45sdf4545asdasd34243,LastModified=12/16/2013}]}
所以我合并后的新结果列表将是
NewList ={[{FileName=xyx.txt,MD5=1,LastModified=12/12/2013}], [{FileName=abc.txt,MD5=1fsd431,LastModified=12/16/2013}], // updated abc and def [{FileName=def.txt,MD5=asdasd34243,LastModified=12/16/2013}], //they have different md5 and date in UpdatedList
[{FileName=detf.txt,MD5=1111,LastModified=12/14/2013}]}}]},[{FileName=Run.txt,MD5=sdf45sdf4545asdasd34243,LastModified=12/16/2013}]} // 添加新文件
问题
以上代码合并数据但不更新数据。需要你们去想办法。
【问题讨论】:
标签: c# linq list collections