Index: Core/Common/src/Core.Common.Controls.TreeView/TreeViewControl.cs =================================================================== diff -u -r13e84953f949f1d673f7e3303ad64259ec816349 -rac602811c89da7316ebacbf873e647ce596d65d9 --- Core/Common/src/Core.Common.Controls.TreeView/TreeViewControl.cs (.../TreeViewControl.cs) (revision 13e84953f949f1d673f7e3303ad64259ec816349) +++ Core/Common/src/Core.Common.Controls.TreeView/TreeViewControl.cs (.../TreeViewControl.cs) (revision ac602811c89da7316ebacbf873e647ce596d65d9) @@ -571,20 +571,17 @@ private void RefreshChildNodes(TreeNode treeNode, TreeNodeInfo treeNodeInfo) { - var refreshedTreeNodes = new List(); IEnumerable currentTreeNodes = treeNode.Nodes.Cast().ToList(); Dictionary currentTreeNodesPerTag = currentTreeNodes.ToDictionary(ctn => ctn.Tag, ctn => ctn); object[] newChildNodeObjects = treeNodeInfo.ChildNodeObjects != null ? treeNodeInfo.ChildNodeObjects(treeNode.Tag) : new object[0]; // Obtain a collection of refreshed nodes, recycling any existing nodes - foreach (object childNodeObject in newChildNodeObjects) - { - refreshedTreeNodes.Add(currentTreeNodesPerTag.ContainsKey(childNodeObject) - ? currentTreeNodesPerTag[childNodeObject] - : CreateTreeNode(treeNode, childNodeObject)); - } + List refreshedTreeNodes = newChildNodeObjects.Select( + cno => currentTreeNodesPerTag.ContainsKey(cno) + ? currentTreeNodesPerTag[cno] + : CreateTreeNode(treeNode, cno)).ToList(); // Remove any outdated nodes foreach (TreeNode removedNode in currentTreeNodes.Except(refreshedTreeNodes))