从 Windows 窗体应用程序上的 CSV 文件读取数据并将其存储到 2D 数组
本文关键字:数据 存储 数组 2D 读取 文件 应用 窗体 Windows 应用程序 程序上 | 更新日期: 2023-09-27 18:32:15
我似乎无法让我的csv文件将数据存储到2D数组中。
到目前为止,我的代码看起来像这样:
try
{
string nrValues;
fs = new FileStream(path, FileMode.Open, FileAccess.Read); // open for reading
// the file has opened; can read it now
sr = new StreamReader(fs);
while (!sr.EndOfStream)
{
line = sr.ReadLine();
parts = line.Split(',');
for (int i = 0; i < sizes.Length; i++)
{
textiles[nrValues, i] = parts[i];
}
nrValues++;
}
这是我的csv文件的样子:
.csv
您应该能够使用以下代码片段读取数据。我已将nrValues
更改为整数,并且我正在使用parts.Length
而不是sizes.Length
,因为您没有包含sizes
的定义。但是,请查看本答案末尾的改进版本。使用 LINQ,可以在两行中实现相同的代码。
using System.IO;
namespace ConsoleApplication23
{
internal class Program
{
private static void Main(string[] args)
{
int nrValues=0;
FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read); // open for reading
// the file has opened; can read it now
StreamReader sr = new StreamReader(fs);
string[,] textiles = new string[6, 4];
while (!sr.EndOfStream)
{
string line = sr.ReadLine();
string[] parts = line.Split(',');
for (int i = 0; i < parts.Length; i++)
{
textiles[nrValues, i] = parts[i];
}
nrValues++;
}
}
}
}
但是,如果您愿意将结果设置为交错数组而不是 2D 数组,则可以使用 LINQ 编写相同的代码,这更整洁、更短
:var lines = File.ReadAllLines(path);
var textiles = lines.Select(line => line.Split(',')).ToArray();