C# 在windows窗体应用程序上从CSV文件读取数据并将其存储到2D数组
我似乎无法将csv文件存储到2D数组中 到目前为止,我的代码是这样的:C# 在windows窗体应用程序上从CSV文件读取数据并将其存储到2D数组,c#,arrays,csv,C#,Arrays,Csv,我似乎无法将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.EndOfStrea
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++;
}
试试看
{
字符串值;
fs=newfilestream(路径,FileMode.Open,FileAccess.Read);//为读取而打开
//文件已打开;现在可以读取它了
sr=新的StreamReader(fs);
而(!sr.EndOfStream)
{
line=sr.ReadLine();
零件=直线分割(',');
对于(int i=0;i
这是我的csv文件的外观:
您应该能够通过下面的代码片段读取数据。我已将
nrValues
更改为整数,并且我使用的是parts.Length
而不是size.Length
,因为您没有包含size
的定义。但是,请查看此答案末尾的改进版本。Usi您可以在两行代码中实现相同的代码
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++;
}
}
}
}
您应该能够使用下面的代码片段读取数据。我已将
nrValues
更改为整数,并且我使用部分。Length
而不是size.Length
,因为您没有包含size
的定义。但是,请查看此答案末尾的改进版本。使用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++;
}
}
}
}
您还将
nrValues
定义为字符串而不是int,这将导致编译错误,至少对于nrValues++。您还将nrValues
定义为字符串而不是int,这将导致编译错误,至少对于nrValues++。既然其中一个问题实际上与变量类型有关,我是否会如果在代码段中声明类型而不是使用var
?@Ciara,那就没什么帮助了。我已经更新了帖子,明确定义了类型。使用var有点专业惰性:-)我同意在这种情况下,显式定义类型更好。因为问题之一实际上是变量类型,不是吗如果在代码段中声明类型比使用var
?@Ciara更有帮助,我已经更新了帖子来显式定义类型。使用var有点专业惰性:-)我同意在这种情况下显式定义类型更好。