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。基于文本的序列化是否重要,您是否考虑切换到二进制格式?