Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 快速保存\加载大数据_C#_.net_Bigdata - Fatal编程技术网

C# 快速保存\加载大数据

C# 快速保存\加载大数据,c#,.net,bigdata,C#,.net,Bigdata,我有以下课程: public class HPChartGraphPoint { public int Keyword { get; set; } public List<long> Points { get; set; } public HPChartGraphPoint() { Points = new List<long>(); } public string SerializeToString(

我有以下课程:

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


}
公共类HPChartGraphPoint
{
公共int关键字{get;set;}
公共列表点{get;set;}
公共HPChartGraphPoint()
{
点=新列表();
}
公共字符串SerializeToString()
{
var sb=新的StringBuilder();
附加(关键字);
某人加上(“:”);
对于(int i=0;iint.Parse(x)).ToArray();
var retPoint=新的HPChartGraphPoint();
retPoint.Keyword=拆分器[0];
for(int i=1;i
我需要存储和加载包含数百万个元素的集合列表。如何快速高效地完成这项工作

编辑:

下面是用于存储的代码

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

}
使用(var sw=new StreamWriter(filePath))
{
for(int i=0;i
二进制格式可能比文本更紧凑,更易于阅读/解析


您可以使用轻量级的流包装器:并且。

您在大型数据集上测量过代码块的性能吗?什么时候执行?什么时间适合你?@sll我一小时前刚开始存储数据,它还在工作。输出文件大小>20gb。所以…我想做得更快。你是从数据库存储/加载的吗?@c0deNinja不是,我在使用文件。请参阅Update。基于文本的序列化是否重要,您是否考虑切换到二进制格式?