我想从文本文件中创建一个数组数组......
每行有20000行,每行包含21个字符串,','
我想读取每一行并将其变成一个数组,每一行都是一个新的数组。
所以我想通过这样开始创建锯齿状数组:
string [] [] SqlArray = new string [200000] [21];
但是它给出了:错误消息:无效的等级说明符:预期','或者]
我如何创建此数组或初始化它?
我将填充数组中的数据,如下所示:
while(true) {
string theline = readIn.ReadLine();
if (theline == null) break;
string[] workingArray = theline.Split(',');
for (int i = 0; i < workingArray.Length; i++)
{
for (int k = 0; k < 20; k++)
{
SqlArray[i][k] = workingArray[k];
}
}
}
谢谢
答案 0 :(得分:0)
这种类型的初始化仅适用于Java。您必须声明一个数组数组,然后在循环中初始化每个数组。
from pylab import *
from scipy import *
from StringIO import StringIO
data = """
0.00 , 0.0658
100.00 , 0.4692
200.00 , 1.4577
300.00 , 3.0489
400.00 , 5.1213
500.00 , 7.5221
600.00 , 10.1170"""
celcius,y_data = loadtxt(StringIO(data), delimiter=",",unpack=True)
#converting celcius to kelvin
kelvin = celcius + 273.15
#creating labels
xlabel("1/T (K)")
ylabel("Reaction Rate")
#plotting...
plot(1/kelvin, y_data)
#making the y-axis logarythmic
semilogy()
grid()
show()
或者,您可以使用非锯齿状数组。它可能适合您的需要。
{{1}}
可以这样访问:
{{1}}
答案 1 :(得分:0)
对任何有兴趣的人来说,这是我最终实现它的方式:
TextReader readIn = File.OpenText("..\\..\\datafile.txt");
string [] [] SqlArray = new string [rowNumCreate] [];
int e = 0;
while (true)
{
string theline = readIn.ReadLine();
if (theline == null) break;
string[] workingArray = theline.Split(',');
SqlArray[e] = new string[valuesInRow +1];
for (int k = 0; k < workingArray.Length; k++)
{
SqlArray[e][k] = workingArray[k];
}
e++;
}
正在读取的文件是一个简单的模拟数据库,设置为一个自动生成的平面文件,用于测试我正在实现的算法,该算法适用于锯齿状数组;因此,我不是使用数据库,而是为了易于使用而增加和减小尺寸。
以下是构建文本文件的代码:
随机技能_id;
skill_id = new Random(); // int counter = 0;
string seedvalue = TicksToString();
int rowNumCreate = 200000;
int valuesInRow = 20;
string lineInFile = seedvalue;
string delimiter = ",";
for (int i = 0; i < rowNumCreate; i++)
{
for (int t = 0; t < valuesInRow; t++)
{
int skill = skill_id.Next(40);
string SCon = Convert.ToString(skill);
lineInFile += delimiter + SCon;
}
if (rowNumCreate >= i + 1)
{
dataFile.WriteLine(lineInFile);
lineInFile = "";
string userPK = TicksToString();
lineInFile += userPK;
}
}
dataFile.Close();
public static string TicksToString()
{
long ms = DateTime.Now.Second;
long ms2 = DateTime.Now.Millisecond;
Random seeds;
seeds = new Random();
int ran = seeds.GetHashCode();
return string.Format("{0:X}{1:X}{2:X}", ms, ms2, ran).ToLower();
}
我仍然是学生,所以不确定代码是否为A级但是有效:)