[英]How to get a inherited object member from a list with 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.