1

私は次のクラスを持っています:

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


}

何百万もの要素を含むコレクション List を保存してロードする必要があります。高速でメモリ効率の良い方法は?

編集:

ここに保存するためのコードがあります

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

}
4

1 に答える 1

0

バイナリ形式は、テキストよりもコンパクトで読みやすく、解析しやすい可能性があります。

軽量ストリーム ラッパーを使用できます: BinaryReaderおよびBinaryWriter

于 2012-06-22T20:10:53.100 に答える