C# 在c语言中解析嵌套列表数据#

C# 在c语言中解析嵌套列表数据#,c#,parsing,nested-lists,C#,Parsing,Nested Lists,我正在VisualStudio2010中开发C#应用程序。在这个应用程序中,我收到了如下格式的一些数据。我需要从中解析数据 数据格式: List, item 3(upto n..) data1 List, item 3(upto n..) (as data2) data1 data2 List, item 3(upto n..) (as data3) data

我正在VisualStudio2010中开发C#应用程序。在这个应用程序中,我收到了如下格式的一些数据。我需要从中解析数据

数据格式:

 List, item 3(upto n..)
        data1
        List, item 3(upto n..) (as data2)
            data1
            data2
            List, item 3(upto n..) (as data3)
                data1
                data2
                data3
        data3
我可以使用多维(锯齿状)数组、列表、字典等。。为了这个。但是
问题是,解析上述格式化数据的最佳优化方法是什么?? 我应该使用哪种数据类型

欢迎提供任何帮助或建议


提前感谢…

我将使用自定义数据结构,如下面的代码。严格来说,接口不是必需的,但是如果您需要开始处理更复杂的数据包,它会使您的数据结构更加灵活

编辑:内部数据包应该是一个集合

public interface IPacket
{
    String Data { get;set; }
    IList<IPacket> InnerPackets {get;set;}
}

public class Packet : IPacket
{
    public String Data { get;set; }
    public IList<IPacket> InnerPackets {get;set;}
}
公共接口IPacket
{
字符串数据{get;set;}
IList InnerPackets{get;set;}
}
公共类数据包:IPacket
{
公共字符串数据{get;set;}
公共IList InnerPackets{get;set;}
}

它是什么格式的,xml?@TimSchmelter不,我正在从网络接收数据。这是一个定制协议。除非您预先知道需要多少项,否则阵列看起来不太合适。更丰富的集合类型似乎更合适。是否只有通过识别才能知道列表已结束?第一行是否有明显的不同(无括号)?@标识列表是否结束的方法是该列表中的项目总数。您的数据格式有点神秘,并且关于
[list
[(列表
。还缺少这是关于什么类型的。所有字符串?我的问题是解析数据的最佳优化方式,以及使用哪种数据类型填充和读取此数据。我认为最佳的数据结构将取决于您需要对数据执行什么操作。即,读取数据后需要执行什么类型的操作。首先,我建议宝贝,从一个简单的列表开始。我想说你可能过早地优化了你的解决方案。