我有这段代码用于检查节点的所有子节点是否展开。如何使用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()));