系统地创建新节点的更简单方法?
Easier way to systematically create new nodes?
因此出于测试目的,我需要三个 <T>
类型的 IEnumerable。一个有两个分支,一个有一个分支,一个只包含节点。我必须在更大的树结构中创建进一步的测试,这将需要不同 IEnumerables 的更多迭代。目前,我的(工作)解决方案看起来像这样。但我忍不住想,我可以一次添加一个分支,并在每一步将 IEnumerables 设置为彼此相等,或者类似的东西来加速这个过程。显然,直接实现它是行不通的,因为它们是引用类型,所以无论如何它们最终都会得到相同的值,而且无论如何它都会相当混乱,如果我解决它......让我有点卡住了。有什么方法可以更轻松地完成此操作吗?
// Create test IEnumerables for comparison (one full, one with one branch, one of just node)
List<T> testlistfull, testlist1branch, testlistnode;
testlistnode = new List<T>();
testlistnode.Add(node0);
testlist1branch = new List<T>();
testlist1branch.Add(node0);
testlist1branch.Add(branch1);
testlistfull = new List<T>();
testlistfull.Add(node0);
testlistfull.Add(branch1);
testlistfull.Add(branch2);
IEnumerable<T> testenumfull = testlistfull as IEnumerable<T>;
IEnumerable<T> testenum1branch = testlist1branch as IEnumerable<T>;
IEnumerable<T> testenumnode = testlistnode as IEnumerable<T>;
您可以使用隐式类型数组。他们从数组初始值设定项中的值推断出他们的类型。
IEnumerable<T> testenumfull = new [] {node0, branch1, branch2};
IEnumerable<T> testenum1branch = new [] {node0, branch1};
IEnumerable<T> testenumnode = new [] {node0};
或者如果它们出于某种原因必须是 List<T>
类型。
IEnumerable<T> testenumfull = new List<T>{node0, branch1, branch2};
IEnumerable<T> testenum1branch = new List<T>{node0, branch1};
IEnumerable<T> testenumnode = new List<T>{node0};
您不需要 as IEnumerable<T>
,因为只需分配给该类型的变量即可进行隐式转换。
因此出于测试目的,我需要三个 <T>
类型的 IEnumerable。一个有两个分支,一个有一个分支,一个只包含节点。我必须在更大的树结构中创建进一步的测试,这将需要不同 IEnumerables 的更多迭代。目前,我的(工作)解决方案看起来像这样。但我忍不住想,我可以一次添加一个分支,并在每一步将 IEnumerables 设置为彼此相等,或者类似的东西来加速这个过程。显然,直接实现它是行不通的,因为它们是引用类型,所以无论如何它们最终都会得到相同的值,而且无论如何它都会相当混乱,如果我解决它......让我有点卡住了。有什么方法可以更轻松地完成此操作吗?
// Create test IEnumerables for comparison (one full, one with one branch, one of just node)
List<T> testlistfull, testlist1branch, testlistnode;
testlistnode = new List<T>();
testlistnode.Add(node0);
testlist1branch = new List<T>();
testlist1branch.Add(node0);
testlist1branch.Add(branch1);
testlistfull = new List<T>();
testlistfull.Add(node0);
testlistfull.Add(branch1);
testlistfull.Add(branch2);
IEnumerable<T> testenumfull = testlistfull as IEnumerable<T>;
IEnumerable<T> testenum1branch = testlist1branch as IEnumerable<T>;
IEnumerable<T> testenumnode = testlistnode as IEnumerable<T>;
您可以使用隐式类型数组。他们从数组初始值设定项中的值推断出他们的类型。
IEnumerable<T> testenumfull = new [] {node0, branch1, branch2};
IEnumerable<T> testenum1branch = new [] {node0, branch1};
IEnumerable<T> testenumnode = new [] {node0};
或者如果它们出于某种原因必须是 List<T>
类型。
IEnumerable<T> testenumfull = new List<T>{node0, branch1, branch2};
IEnumerable<T> testenum1branch = new List<T>{node0, branch1};
IEnumerable<T> testenumnode = new List<T>{node0};
您不需要 as IEnumerable<T>
,因为只需分配给该类型的变量即可进行隐式转换。