我有一个像这样的模型类
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
包含一个名为list
的{{1}} Interest
,现在我想删除它的一个条目。我怎样才能用Linq实现这个目标?
我试过像
interests
但它仅移除了 _interestlist.RemoveAll(x => x.id == "1234");
而不是interests
。任何人都可以指出正确的方法吗?
答案 0 :(得分:7)
从技术上讲,你有一个列表列表,几乎就像你有List<List<Interest>>
一样。要解决此问题,您需要foreach
对集合进行操作,并在内部列表上执行Remove
操作。
foreach(InterestList interestList in _interestlist)
{
interestList.interests.RemoveAll(x => x.id == "1234");
}
您还可以使用ForEach
List<T>
方法
_interestlist.Foreach(i => i.interests.RemoveAll(x => x.id == "1234"));
答案 1 :(得分:5)
此代码:
_interestlist.ForEach(i => i.interests.RemoveAll(x => x.id == "1234"));
将删除_interestlist中id =“1234”的任何InterestList对象中包含的兴趣列表中的所有对象。