簡體   English   中英

Lambda Expression從列表中的列表獲取記錄

[英]Lambda Expression to get records from list in a list

我有一個如下課程:

public class Wrapper
{
    public Wrapper();

    public Class1 c1 { get; set; }
    public List<Class2> lstC2 { get; set; }
}

其中Class2是:

 public class Class2
{
    public DateTime date1 { get; set; }
} 

然后通過某種方法獲取Wrapper類的對象列表

     List<Wrapper> lstWrap = SomeMethod();

現在,我想使用lambda表達式從lstWrap中刪除date1小於今天的lstWrap中的所有記錄。 我嘗試使用RemoveAll函數,但無法滿足結果。 謝謝。

如果要刪除日期至少比今天短的項目,請使用:

 lstWrap.RemoveAll(l=>l.lstC2.Count(d=>d.date1<DateTime.Today)>0);

在這些情況下,我將使用.All()或.Any()

var lts = new List<Wrapper>();
var res  = lts.Where (l => l.lstC2.All(d => d.date1 >= DateTime.Now));

編輯:

要刪除所有內容,我仍然會使用.Any()

lstWrap.RemoveAll(l => l.lstC2.Any(a => a.date1 < DateTime.Now));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM