使用lambda从嵌套列表中删除项目

时间:2015-11-03 12:54:23

标签: c# linq list lambda

我有一个来自客户类的列表,如下所示

   internal class RMDocument
    {
        public string FolderProfileNumber { get; set; }

        public string FolderName { get; set; }
        public List<FolderItem> Documents { get; set; }

    }

如您所见,FolderItem中有一个列表。和FolderItem有DocNumber属性。

所以我想删除与Documents items具有相同文档编号的项目。

foreach (var dup in DocumentsAndParents.Where(d => !(d.Value.Count == 1 && d.Value[0].ReferenceCount == 1)))
{
    var duplicated = ExportDocumentsToRm.SelectMany(s =>
    s.Documents).FirstOrDefault(f => f.DocNumber.Equals(dup.Key));

    if (duplicated != null)
   {
     ExportDocumentsToRm.SelectMany(s => s.Documents).ToList()
    .RemoveAll(r => r.DocNumber.Equals(duplicated.DocNumber));

   }
}

代码我觉得我的问题很明确。我知道问题,我使用ToList()这就是为什么它不会删除,但否则我无法访问RemoveAll或其他删除方法。

如果docnumber与来自Documents的anitem相同,我如何删除项目。我只想删除&#34; Documents&#34;中的项目。不是来自ExportDocumentsToRm,它有Documents属性作为列表

0 个答案:

没有答案