public ConditionalTree BuildConditionalTree(ITableData data) { var listRows = data.ToList(); if (listRows.Count == 0) { return null; } var firstRow = listRows[0]; var conditionaTree = new ConditionalTree { Root = new ConditionalTree.ConditionalNode() }; var attributes = firstRow.Attributes.ToList(); attributes.Remove(TableData.ClassAttributeName); BuildConditionalNodesRecursive(listRows, attributes, conditionaTree.Root); return conditionaTree; }