Console.WriteLine(GetMaxDepth(list)); public static int GetMaxDepth(List<Department> list, int? id = null) { if (list == null) throw new Exception("未将对象引用设置到对象的实例。"); var depaList = list.Where(x => x.FParentID == id).ToList(); if (depaList.Count == 0) return 0; int max = 0; foreach (var item in depaList) { if (GetMaxDepth(list, item.FID) > max) { max = GetMaxDepth(list, item.FID); } } return ++max; //Func<Guid, int> fun = null; //fun = new Func<Guid, int>(x => //{ // return 1; //}); //fun = delegate(Guid s) //{ //}; }