从泛型列表的列表中删除条目
本文关键字:列表 删除 泛型 | 更新日期: 2023-09-27 18:03:14
我有一个像这样的模型类
public class InterestList
{
public string id { get; set; }
public string name { get; set; }
public string description { get; set; }
public List<Interest> interests { get; set; }
}
public class Interest
{
public string id { get; set; }
public int sortOrder { get; set; }
public string name { get; set; }
public string categoryName { get; set; }
public string categoryId { get; set; }
}
和一个对象private List<InterestList> _interestlist;
保存我的数据。
你可以看到_interestlist
包含Interest
的list
命名为interests
,现在我想删除它的单个条目。我如何用Linq实现这一点?
我已经试过了
_interestlist.RemoveAll(x => x.id == "1234");
但是它只删除interests
而不删除Interest
。有谁能指出正确的方法吗?
从技术上讲,您有一个列表的列表,几乎就像您有List<List<Interest>>
一样。要解决这个问题,您需要在集合上执行foreach
,并在内部列表上执行Remove
操作。
foreach(InterestList interestList in _interestlist)
{
interestList.interests.RemoveAll(x => x.id == "1234");
}
您也可以使用List<T>
ForEach
方法_interestlist.Foreach(i => i.interests.RemoveAll(x => x.id == "1234"));
代码:
_interestlist.ForEach(i => i.interests.RemoveAll(x => x.id == "1234"));
将删除在_interestlist中id = "1234"的任何InterestList对象中包含的兴趣列表中的所有对象。