如何使用Linq表达式压缩此代码



我有这段代码用于检查节点的所有子节点是否展开。如何使用Linq表达式压缩此代码?我理解代码是如何工作的,但我不能在Linq中做同样的事情。

public bool AllChildRowsExpanded()
{
if (!this.IsExpanded)
{
return false;
}
foreach (var row in this.ContainedRows)
{
if (row.ContainedRows == null || row.ContainedRows.Count == 0)
{
continue;
}
if (!row.AllChildRowsExpanded())
{
return false;
}                    
}
return true;
}

只需使用一个表达式体方法就可以将其进一步压缩。

public bool AllChildRowsExpanded()
=> IsExpanded && (ContainedRows == null || ContainedRows.All(r => r.AllChildRowsExpanded()));

最新更新