才10万个座标,其实算很少了,你把代码改一下,一个座标点用一个类来保存,形如
public class myPoint
{
public double X = 0;
public double Y = 0;
public double Z = 0;
public myPoint(double x, double y, double z)
{
this.X = x; this.Y = y; this.Z = z;
}
public myPoint(string x, string y, string z)
{
double x1=0,y1=0,z1=0;
if(double.TryParse(x,out x1))
if(double.TryParse(y,out y1))
if(double.TryParse(z,out z1))
this.X = x1; this.Y = y1; this.Z = z1;
}
}
你原本程序中关于数组的可以全部删除,我不太清楚你文件中的内容,假定每行是
X1 Y1 Z1
X2 Y2 Z1
这种格式,读取数据时代码可以改成如下的
Listlist = new List ();
string str=null;
while ((str=objreader.ReadLine()) != null)
{
string[] temp = str.Split(new char[]{' ','\r','\n'}, StringSplitOptions.RemoveEmptyEntries);
if (temp.Length == 3) //是正确的座标
{
list.Add(new myPoint(temp[0], temp[1], temp[2]));
}
}
objreader.Close();
//之后就可以访问list[0]至list[list.Count-1],比如说访问第0个元素的x即可用list[0].X
个人观点:你的数组有点大,建议采用数据库的方式存放,这样操作起来比较方便,占用的内存也会小一些。
10W坐标其实非常的少,经常处理坐标可能几十亿个,每个还有若干属性,10W个坐标用List就足够了。
10W数据读进来差不多的计算机配置也就是几秒到十几秒的事儿。
读进来你要进行什么操作呢?
用List来存,是动态分配内存,原则上系统还有空余内存,程序就能申请到存储空间,可以一次性存下来的。
你的意思是说不知道数组元素个数?可以用List