Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 用C解析csv文件#_C# - Fatal编程技术网

C# 用C解析csv文件#

C# 用C解析csv文件#,c#,C#,它只是将:System.String[]打印到控制台上,程序就可以运行了 长时间运行除非重写(非字符串)类型的ToString()方法,否则在这种情况下,它将只返回对象类型的名称;“System.String[]” 要打印数组中的所有值。请尝试以下操作: String[] values = File.ReadAllText(@"C:/Users/state.csv").Split(','); Console.WriteLine(values); Console.ReadLine(); 使用任何

它只是将:System.String[]打印到控制台上,程序就可以运行了 长时间运行

除非重写(非字符串)类型的
ToString()
方法,否则在这种情况下,它将只返回对象类型的名称;“System.String[]”

要打印数组中的所有值。请尝试以下操作:

String[] values = File.ReadAllText(@"C:/Users/state.csv").Split(',');
Console.WriteLine(values);
Console.ReadLine();

使用任何循环进行打印

String[] values = File.ReadAllText(@"C:/Users/state.csv").Split(',');

foreach( var v in values)
{
    Console.WriteLine(v);
}
Console.ReadLine();
数组上的
.ToString()
方法将返回“System.String[]”。如果需要打印数组中的每个项目,请使用循环并打印每个项目

或者像下面那样使用字符串连接

string[] lines = System.IO.File.ReadAllLines(@"C:/Users/state.csv");
foreach (string line in lines)
{
   string[] values = line.Split(',');
   foreach(var item in values)
      {
         Console.WriteLine(item);
      }
}

我认为,如果您之前已经拆分了这些项目,那么遍历这些项目不是一个好主意。我会这样更改您的代码:

Console.WriteLine(string.Join(Environment.NewLine, values));
这样,您将只拆分此字符串一次。如果您想扩展控制台的缓冲区,应该这样做

string valuesString = File.ReadAllText(@"C:/Users/state.csv");
Console.WriteLine(valuesString);
String[] values = valuesString.Split(',');

仅供参考:CSV格式比简单地基于逗号分割行更复杂。例如,如果一行包含以下数据:
10,街道名称,“Smith,John”,邮政编码
?它只包含0和1感谢您的帮助,它似乎可以工作,虽然只打印最后几行数据感谢您的帮助,这似乎可以工作,尽管我只能在控制台上查看CSV文件的最后几行。是否有其他方法来显示所有内容而不是以下内容:foreach(值中的var v){Console.WriteLine(v);}Console.ReadLine();您是否在询问是否可以以某种方式扩展控制台上显示的内容?是指缓冲区?我编辑了响应。是否需要在csv文件打开后关闭该文件?您不需要关闭该文件。ReadAllText在文件完成后打开、读取和关闭文件。感谢您的输入,但它只显示文件的最后几行。确定了您要搜索的内容,请稍等,我正在更新我的答案查看我的更新,它将逐行读取您的csv,然后用逗号拆分所有行,然后您可以迭代该数据并获得单独的数据点感谢更新,我收到一个错误,说明无法将字符串[]转换为字符串,因此我将其更改为:字符串[]值=行。拆分(',');现在,它只是打印出csv文件中的标题OK,这是一个严重的错误,如果你的csv是正确的,那么你应该得到我刚刚测试过的标题的所有值
Console.BufferHeight = Int16.MaxValue - 1;