简体   繁体   English

从嵌套列表C#LINQ的最后一级删除元素

[英]Remove element from last level of nested list C# LINQ

I have an entity with multiple levels of nested lists - Is there a way to remove element from last level using LINQ (without any nested foreach) - remove Dosage with id = X from strength with id = Y from route with id = Z from drug with id = Q? 我有一个具有多层嵌套列表的实体-有没有办法使用LINQ从元素的最后一个层次中删除元素(没有任何嵌套的foreach)-从药品中从id = Z的强度中删除id = X的剂量id = Q? (assume XYZQ are ints) I've provided my entity structure below. (假设XYZQ是整数),我在下面提供了我的实体结构。

var entity: List<Drug>;
Drug {
    int id;
    List<Route> routes;
}

Route {
    int id;
    List<Strength> strengths;
}

Strength {
    int id;
    List<Dosage> dosages;
}

Dosage {
    int id;
}

Try this: 尝试这个:

drugList.Where(x => x.id == Q).FirstOrDefault().routes.Where(x => x.id == Z).FirstOrDefault().strengths.Where(x => x.id == Y).FirstOrDefault().dosages.RemoveAt(X);

With the Q,Z,Y,X as the index values from your post. 以Q,Z,Y,X作为帖子的索引值。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM