亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

有沒有什么方法可以使用 linq 查詢來過濾嵌套列表,以便我最終得到經過充分過濾的列表的過濾列表?

有沒有什么方法可以使用 linq 查詢來過濾嵌套列表,以便我最終得到經過充分過濾的列表的過濾列表?

C#
拉丁的傳說 2023-09-24 10:52:24
我在過濾嵌套在更大列表中的字符串列表時遇到問題。我嘗試過這樣的事情:myList.FindAll(d => d.activities.Any(i => i.type.Contains("read")));但似乎有人正在回歸我有一個“UserData”結構,如圖所示:public class UserData{   public int id;   public List<UserActivity> activities;}public class UserActivity{   public string activity;   public string type;}有f.ex。兩種類型的活動(“讀”和“寫”)我想做的是過濾給定的內容,List<UserData> myList如圖所示List<UserData> newList = new List<UserData>();foreach(UserData d in myList){    UserData newD = new UserData();    newD.id = d.id;    newD.activities= d.activities.FindAll(i =>i.type.Contains("read"));    if (newD.activities.Any())        newList.Add(newD);}有沒有辦法用 Linq 查詢巧妙地做到這一點?我想要弄清楚的是一個簡短而整潔的 Linq 查詢來過濾我所描述的嵌套列表......我知道這可能是一個裝飾問題,但它仍然讓我很困擾。
查看完整描述

3 回答

?
蕭十郎

TA貢獻1815條經驗 獲得超13個贊

var newList = (from userData in myList

               let newActivities = userData.activities.Where(i => i.type.Contains("read"))

               where newActivities.Any()

               select new UserData { id = userData.id, activities = newActivities.ToList() }).ToList();


查看完整回答
反對 回復 2023-09-24
?
慕俠2389804

TA貢獻1719條經驗 獲得超6個贊

我通過使用解決了這個問題:

newList = myList.Where(d => d.activities.Any(act => act.type.Contains("read")))
    .Select(d => new UserData { id = d.id, activities = new List<UserActivity>( d.activities.FindAll(act => act.type.Contains("read")) ) })
    .ToList();


查看完整回答
反對 回復 2023-09-24
?
慕尼黑8549860

TA貢獻1818條經驗 獲得超11個贊

嘗試以下操作:

            List<UserData> newList = myList.Select(x => new UserData() { id = x.id, activities = x.activities.Where(y => y.type.Contains("read")).ToList() })
                .Where(x => x.activities.Count > 0)
                .ToList();


查看完整回答
反對 回復 2023-09-24
  • 3 回答
  • 0 關注
  • 160 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號