我让 treeView 加载了自定义类集合(例如:MyClass)。我想从选中的树视图项中返回 MyClass[] 的集合并希望使用 LINQ。我在下面尝试,它工作正常。但我想编写 1 行 Linq 查询,甚至不使用 List<>。有什么帮助吗?是否可以在 1 Linq 查询中进行递归?
List<MyClass> items = new List<MyClass>();
items.AddRange(from node in tvData.Nodes.OfType<TreeNode>().Where((x) => x.Checked)
select node.Tag as MyClass);
tvData.Nodes.OfType<TreeNode>()
.ForEach((x => items.AddRange(from item in x.Nodes.OfType<TreeNode>()
.Where((y) => y.Checked)
select item.Tag as MyClass)));
return items.ToArray();
注意:treeView 具有 1 级深度。每个父节点都有一组子节点,并且只有一个级别。