我应该使用什么数据结构来存储C#中的项目集合?

问题描述:

我有以下字符串:[Value:"Car" - Name:"Manufactor" [Value:"Audi" - Name:"A6"][Value:"BMW" - Name:"M4"]]]我应该使用什么数据结构来存储C#中的项目集合?

我需要拆分字符串并将数据保存到合适的数据结构中。起始括号“[”表示集合的开始,并且匹配结束括号“]”的 指示集合的结束。 “ - ”字符分隔键和值。所以我想知道在这里使用的最合适的逻辑数据结构是什么?正在使用树木的好解决方案?我将字符串分成几部分,我只需要帮助来选择逻辑数据结构。

谢谢!

+3

对此没有单一的答案;正确的模式就是让你以有用的方式使用它的方式 - 这完全针对你的场景 –

使用树不是一个好的解决方案,因为你没有像你的结构中有多个树叶的分支。

不知道你的用例,我会使用一个列表或一个Car-Objects数组,每个Car-Objects都有一个属性Name和Manufacturer。

它看起来像是一种树,或者如果除Car以外还有其他类型的嵌套字典。或者一个简单的字典,就像; Dictionary<Manufacturer, List<CarModels>>

字符串格式不正确我猜想(3个括号和4级关闭的)

,使你的字符串暧昧,尤其是在最后这3个右括号

+0

他的问题是关于数据结构,而不是解析错误。 – Alex

+0

但这可能是一个树,其中有一个分支和深度3,或者取决于括号的键值对的集合 –

你可以做的与JavaScriptSerializer相同。它返回一个字典(字符串,对象)和对象是一个字符串或其他字典(的字符串,对象)。

最好的方法是拥有适当的类和良好的属性名称并存储信息。