Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 管理可包含其他对象的对象列表的最简单方法_C#_List - Fatal编程技术网

C# 管理可包含其他对象的对象列表的最简单方法

C# 管理可包含其他对象的对象列表的最简单方法,c#,list,C#,List,对不起,这个标题。我想不出比这更好的了 不管怎样,这就是我遇到的问题。 假设我有一张这样的清单 [a, b, c, d, e, f, g, h] 现在,根据一些规则,我想把元素从c分组到f,这样列表看起来像 [a, b, [c, d, e, f], g, h] 原始列表的大小已减少到5个元素(内部列表的类型与单数值相同) 现在我可以把它分组得越来越远 [a, [b, [c, d, e, f]], [g, h]] 我遇到的问题是它的实际实现。 在我编写自定义链表(尽管C#提供了一个链表)之前

对不起,这个标题。我想不出比这更好的了

不管怎样,这就是我遇到的问题。 假设我有一张这样的清单

[a, b, c, d, e, f, g, h]
现在,根据一些规则,我想把元素从c分组到f,这样列表看起来像

[a, b, [c, d, e, f], g, h]
原始列表的大小已减少到5个元素(内部列表的类型与单数值相同)

现在我可以把它分组得越来越远

[a, [b, [c, d, e, f]], [g, h]]
我遇到的问题是它的实际实现。 在我编写自定义链表(尽管C#提供了一个链表)之前,我必须这样做,它允许我修改元素的左链接和右链接,所以我只需要将元素从C移到f,将它们固定在一个新对象中,并让b指向右边,让g指向左边


然而,这似乎是一个巨大的过度使用,有些东西告诉我,对于这类事情,.NET中必须有一些更简单的内置解决方案。

为什么需要将元素分组为子组?您可以查询列表以获取组吗?您几乎肯定希望在
IEnumerable
之上构建代码,而不是
LinkedList
(无论是自定义还是库)。您想如何定义应该将哪些元素组成子集?你会给出一个开始和结束索引,一个开始索引和计数,一个函数,它接受一个项目并返回一个布尔值,指示它是否应该包括在前一个组中,什么?这实际上是标记器的一部分。元素可以是数字、运算符和括号。我想把括号分组。理想情况下,我会通过提供两个索引对它们进行分组。听起来像是一棵树而不是一个列表。我想你是对的。