protected IEnumerable<TreeViewResult> GetDistinctDictionaryTablesTree(List<IUserField> userFields, Aspect.Domain.CommonDomain provider) { List<Guid> list = userFields.Select(s => s.DictionaryTreeID).Distinct().ToList(); List<Aspect.Domain.GetDictionaryTreeParentsResult> tableList = new List<Aspect.Domain.GetDictionaryTreeParentsResult>(); foreach (Guid item in list) { List<Aspect.Domain.GetDictionaryTreeParentsResult> lll = provider.GetDictionaryTreeParents(item).ToList(); int max =lll.Max(l => l.Level).Value; lll.ForEach(delegate(GetDictionaryTreeParentsResult n) { n.Level = (n.Level - max) * -1; }); tableList.AddRange(lll); } //return tableList.Distinct(DictionaryTreeResultEqualityComparer.Instance).OrderByDescending(d => d.Level).ToList().ConvertAll( return tableList.Distinct(DictionaryTreeResultEqualityComparer.Instance).OrderBy(d => d.Level).ToList().ConvertAll( delegate(GetDictionaryTreeParentsResult n) { return new TreeViewResult() { ID = n.ID, Level = (int)n.Level }; } ).ToList(); }