我试图导入包含2列(例如,日期和价格)的CSV文件,并将其打印在控制台上。但是在我的控制台上,数字不是按列排序的。他们是一个接一个的。
第一个问题:如何在控制台上正确打印它?
第二个问题:我可以合并这两个数组,创建矩阵并在控制台上打印该矩阵吗?比较容易吗?
这是我的代码:
using system.IO;
var reader=new StreamReader(File.OpenRead(@"filename.csv");
list<string> listA=new list<string>();
list<string> listB=new list<string>();
while (!Reader.EndofStream)
{
var Line=reader.ReadLine();
var valuesline.split(';');
listA.Add(values[0]);
listB.Add(values[1]);
}
console.WriteLine("Column1:");
foreah (var Element in listA)
{
console.write(Element);
console.WriteLine("Column2:");
}
foreah (var Element in listB);
{
console.write(Element);
string[] S= listA.toArray;
string[] o=listB.toArray;
}
在不知道您的输出应该是什么样的情况下,我将创建一个类来存储我的结果,然后覆盖该类的ToString函数。这样,您可以只将结果串起来。
注意:我添加了两种执行ToString的方法,以向您展示可以稍作处理以获取所需的输出格式。如果需要制表符或其他方法,可以将其添加为字符串格式。
编辑:我将CsvRow更改为字符串,以便它们可以采用您的Csv值。而且我更改了ToString以使其更符合您的需求。只需从CSV实例化该类并将其打印到控制台即可。使用系统;使用System.Collections.Generic;
public class CsvRow
{
public CsvRow()
{
}
public CsvRow(string a, string b)
{
A = a;
B = b;
}
public string A {get; set;}
public string B {get; set;}
public string ToString(int rowNumber)
{
return String.Format("Row{0}: {1} {2}", rowNumber, A, B);
}
}
public class Program
{
public static void Main()
{
var results = new List<CsvRow>();
results.Add(new CsvRow(DateTime.Now.ToString(), "200"));
results.Add(new CsvRow(DateTime.Now.ToString(), "300"));
var i = 0;
foreach (var result in results)
{
Console.WriteLine(result.ToString(i));
i++;
}
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句