讓我們這個n層的深層結構,例如:LINQ遞歸函數?
public class SomeItem
{
public Guid ID { get;set; }
public string Name { get; set; }
public bool HasChildren { get;set; }
public IEnumerable<SomeItem> Children { get; set; }
}
如果我希望得到的ID(結構中的任意位置)的特定項目是有一些LINQ上帝,我可以用它來輕鬆搞定它一個單獨的聲明或我必須使用一些遞歸函數如下:
private SomeItem GetSomeItem(IEnumerable<SomeItem> items, Guid ID)
{
foreach (var item in items)
{
if (item.ID == ID)
{
return item;
}
else if (item.HasChildren)
{
return GetSomeItem(item.Children, ID);
}
}
return null;
}
你確實需要HasChildren屬性嗎? – Amnon 2011-01-27 08:50:06
不是真的,只是一個幫手,所以它讀得更好:) - Children.Count> 0 – 2011-01-27 08:54:11
@The_Butcher Children.Any():) – felickz 2015-04-24 17:39:49