如何在控制台中打印CSV文件
本文关键字:打印 CSV 文件 控制台 | 更新日期: 2023-09-27 18:02:24
我尝试导入包含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;
}
这听起来像是一个格式问题。
Console.WriteLine
借用了string.Format
来允许文本规范。Format
允许一个位置的项目,并提供填充。你想要的是一个特别填充的列。
下面是一行三列的示例,注意数字0、1、2,它们按照规范索引数据。在索引值旁边是以下数字-15
,它允许在每个列上填充15个空格以容纳数据:
Console.WriteLine("{0,-15} {1,-15} {2,-15}", "Alpha", "Beta", 12);
Console.WriteLine("{0,-15} {1,-15} {2,-15}", "More Text", "B", 122000);
输出:Alpha Beta 12
More Text B 122000
在不知道输出应该是什么样子的情况下,我会创建一个类来存储我的结果,然后重写这个类的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++;
}
}
}
链接到DotFiddle