我似乎无法将我的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文件:
答案 0 :(得分:0)
您应该可以使用下面的代码段阅读您的数据。我已将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();