我对使用 linq 表达式和尝试重构一些旧代码还很陌生。有没有办法将下面的方法变成一个简短干净的 Linq 表达式?
public int GetParentCount(object o)
{
int count = 0;
object parent = GetParentObject(o);
while (parent != null)
{
count++;
parent = GetParentObject(parent);
}
return count;
}
我试过搜索但没有得到满意的结果
最佳答案
你可以像这样枚举祖先:
public IEnumerable<MyClass> AncestorsOf(MyClass obj)
{
var parent = GetParentObject(obj);
if (parent != null)
{
yield return parent;
foreach(var grandparent in AncestorsOf(parent))
yield return grandparent;
}
}
获取总计数将是一个简单的 AncestorsOf(obj).Count()
关于c# - 使用 Linq 计算父对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15837054/