private List<InventoryFolderBase> GetDescendents(List<InventoryFolderBase> lst, UUID root)
{
List<InventoryFolderBase> direct = lst.FindAll (delegate (InventoryFolderBase f)
{
return f.ParentID == root;
});
if (direct == null)
return new List<InventoryFolderBase> ();
List<InventoryFolderBase> indirect = new List<InventoryFolderBase> ();
foreach (InventoryFolderBase f in direct)
indirect.AddRange (GetDescendents (lst, f.ID));
direct.AddRange (indirect);
return direct;
}