【问题标题】:Parse nested list data in c#在 C# 中解析嵌套列表数据
【发布时间】:2013-05-29 07:49:11
【问题描述】:

我正在 Visual Studio 2010 中开发 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

为此,我可以使用多维(锯齿状)数组、列表、字典等。但是
问题是

解析上述格式化数据的最佳和优化方法是什么? 我应该使用哪种数据类型??

感谢任何帮助或建议。

提前谢谢...

【问题讨论】:

  • 它是什么格式,xml?
  • @TimSchmelter 不,我正在从网络接收这些数据。这是一种自定义协议。
  • 数组看起来不太合适,除非你事先知道你期望有多少项目。更丰富的集合类型似乎更合适。你知道一个列表是否以它的标识结束的唯一方法?第一行是否故意不同(没有括号)?
  • @rene 识别列表是否结束的方式是该列表中的总项目数。
  • 你的数据格式有点神秘,[List[(List好像不一致。同样缺少的是这是关于什么类型的。所有字符串?

标签: c# parsing nested-lists


【解决方案1】:

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

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

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;}
}

【讨论】:

  • 我的问题是解析数据的最佳和优化方法以及使用哪种数据类型填充和读取此数据。
  • 我认为最好的数据结构将取决于您需要对数据做什么。即读入数据后需要进行哪些操作。首先,我可能会从一个简单的 List 开始。我会说你可能过早地优化了你的解决方案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-05
  • 1970-01-01
  • 2022-06-12
  • 1970-01-01
  • 1970-01-01
  • 2020-05-21
相关资源
最近更新 更多