如果我有一个treeview(mytreeview),如何获取选定节点的所有父节点(父节点、父节点的父节点等)的列表? 最佳答案 我建议您创建一组自己的树助手,例如,下一个是针对您的问题的: public static class TreeHelpers { public static IEnumerable<TItem> GetAncestors<TItem>(TItem item, Func<TItem, TItem> getParentFunc) { if (getParentFunc == null) { throw new ArgumentNullException("getParentFunc"); } if (ReferenceEquals(item, null)) yield break; for (TItem curItem = getParentFunc(item); !ReferenceEquals(curItem, null); curItem = getParentFunc(curItem)) { yield return curItem; } } //TODO: Add other methods, for example for 'prefix' children recurence enumeration }以及用法示例(在您的上下文中): IList<TreeNode> ancestorList = TreeHelpers.GetAncestors(node, x => x.Parent).ToList();为什么这比使用list.add()更好?-因为我们可以使用惰性linq函数,比如.firstordefault(x=>…)p.s.要将“当前”项包含到可枚举结果中,请使用TItem curItem = item,而不是TItem curItem = getParentFunc(item)
09-20 05:38