繁体   English   中英

快速保存\\加载大数据

[英]Fast save\load big data

我有以下课程:

public class HPChartGraphPoint
{
    public int Keyword { get; set; }
    public List<long> Points { get; set; }

    public HPChartGraphPoint()
    {
        Points = new List<long>();
    }


    public string SerializeToString()
    {
        var sb = new StringBuilder();

        sb.Append(Keyword);
        sb.Append(":");

        for (int i = 0; i < Points.Count; i++)
        {
            sb.Append(Points[i]);
            sb.Append(":");
        }
        return sb.ToString();
    }

    public static HPChartGraphPoint DesirializeFromString(string str)
    {
        var splitter = str.Split(new[]{":"},StringSplitOptions.RemoveEmptyEntries)
        .Select(x => int.Parse(x)).ToArray();

        var retPoint = new HPChartGraphPoint();

        retPoint.Keyword = splitter[0];

        for (int i = 1; i < splitter.Length; i++)
        {
            retPoint.Points.Add(splitter[i]);
        }

        return retPoint;
    }


}

我需要存储和加载具有数百万个元素的集合列表。 如何快速,高效地进行存储?

编辑:

这是用于存储的代码

using (var sw = new StreamWriter(filePath))
{
                for (int i = 0; i < HPChartGraphPointCollection.Count; i++)
                {
                    sw.WriteLine(HPChartGraphPointCollection[i].SerializeToString());
                }

}

二进制格式比文本格式更紧凑,更易于读取/解析。

您可以使用轻量级的流包装器: BinaryReaderBinaryWriter

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM