[英]1 dimension array to 2 dimension array
我正在尝试创建一个读取文本文件的应用程序,其格式如下:
Outremont,3456,4370,15342,546
St-Leonard,6098,12765,10876,1024
Chapleau,6087,6087,6087,6087
它的每一行基本上都包含一个城镇名称和4个值,这些值代表一个政党的票数。
我需要做的是从每一行中检索每个值,然后将它们加在一起。
示例:我将从第一行(3457)中检索第二个值,并从第二行(6098)中检索第二个值,并将它们加在一起。
到目前为止,我知道如何将一行分割成一个数组,这样我就可以得到。 我使用streamreader
读取器检索文本文件的信息,然后使用Split
方法拆分一行。
到目前为止,我的代码看起来像这样
public partial class Form1 : Form
{
string[] mots;
private void btnLire_Click(object sender, EventArgs e)
{
StreamReader reader = new StreamReader(txtCheminAccess.Text);
while (!reader.EndOfStream)
{
string sVal = reader.ReadLine();
if (sVal.Length > 0)
{
mots = sVal.Split(',');
}
}
}
当然,我无法检索每一行,但一次只能检索到一行。 在这种情况下,如果您引用文本文件
Outremont,3456,4370,15342,546
St-Leonard,6098,12765,10876,1024
Chapleau,6087,6087,6087,6087
我的名为mots
数组将仅包含最后一行。 Chapleau,6087,6087,6087,6087
如何将这个1维数组放入2维数组中,使其看起来像Array[textfile Lines,mots]
?
如果您想要的只是总数,则无需创建二维数组。 创建一个总计数组,然后在阅读时添加每个项目。 像这样:
int totals[] = new totals[4];
foreach (var sVal in File.ReadLines(txtCheminAccess.Text))
{
if (sVal.Length > 0)
{
mots = sVal.Split(',');
for (int i = 1; i < 5 && i < sVal.Length; ++i)
{
int val;
if (int.TryParse(sVal[i], out val))
{
totals[i-1] += val;
}
}
}
}
File.ReadLines
逐行读取文件。 对于您创建的StreamReader
循环,这非常方便。
阅读该行后,将按照拆分方式进行拆分,然后代码通过split数组解析整数并将其添加到总计中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.