【发布时间】:2021-01-18 09:37:36
【问题描述】:
我有这样的List<IRequest>
public interface IRequest
{
List<IRequest> Childrens { get; set; }
bool RequestIsSelected { get; set; }
}
如何找到RequestIsSelected对象?
假设我有这样的结构
IRequest -
|
IRequest -
|
IRequest <--- if this one is true I can catch it
|
IRequest -
|
IRequest <----- This one RequestIsSelected == true; (I can't catch it)
我写了这样的方法
private IRequest GetSelectedItem(List<IRequest> entireList)
{
foreach(var tmp in entireList)
{
if(tmp.RequestIsSelected)
{
return tmp;
}
else
{
return GetSelectedItem(tmp.Childrens);
}
}
return null;
}
但它只在第一行进行迭代,如果我选择的项目位于第二行,我的方法将返回 null。
我做错了什么?
【问题讨论】: