给定对象:
我有一个
我希望只返回具有属性
并且两个列表返回时,需要按其各自类型进行输入。
到目前为止我的代码如下:
class Parent
{
private int id;
public int Id
{
get { return id; }
set { id = value; }
}
private List<Child> childrenList;
public List<Child> ChildrenList
{
get { return childrenList; }
set { childrenList = value; }
}
}
class Child
{
private int idSub;
public int IdSub
{
get { return idSub; }
set { idSub = value; }
}
private bool isST;
public bool IsST
{
get { return isST; }
set { isST = value; }
}
}
我有一个
List<Parent> parentList = new List<Parent>()
,
其中Parent
对象内部有一个名为ChildrenList的Child
列表。
Child
有一个属性IsST
。我希望只返回具有属性
IsST
等于true的Child
,如果Parent
不满足条件,则不需要返回。并且两个列表返回时,需要按其各自类型进行输入。
到目前为止我的代码如下:
List<Parent> parentList = new List<Parent>()
{
new Parent()
{
Id = 1,
ChildrenList = new List<Child>()
{
new Child()
{
IdSub = 1,
IsST = true
},
new Child()
{
IdSub = 2,
IsST = true
}
}
},
new Parent()
{
Id = 2,
ChildrenList = new List<Child>()
{
new Child()
{
IdSub = 3,
IsST = false
},
new Child()
{
IdSub = 4,
IsST = true
}
}
},
new Parent()
{
Id = 3,
ChildrenList = new List<Child>()
{
new Child()
{
IdSub = 5,
IsST = false
},
new Child()
{
IdSub = 6,
IsST = false
}
}
}
};
var parentFilteredList = parentList
.Select(c => c.ChildrenList
.Where(d => d.IsST)
.ToList())
.ToList();
但是parentFilteredList
中的父母列表不是List<Parent>
类型。
我需要它是List<Parent>
,因为在实际情况中,Parent
对象有很多属性,以及Child
。选择新的不是一个选项。
需要帮助吗?
parentFilteredList
的类型是List<List<Child>>
,我猜你想要一个List<Parent>
,是吗? - Ousmane D.var parentFilteredList = parentList.Where(c => c.ChildrenList.Any(d => d.IsST)).ToList();
或者你也想过滤这些父母内部的孩子列表吗? - Zohar PeledparentList .Select(c => new Parent { Id = c.Id, ChildrenList = c.ChildrenList .Where(d => d.IsST) .ToList() }).Where(p => p.ChildrenList.Count >= 1).ToList()
。 - Ousmane D.