如何在控制台中打印CSV文件?
我试图导入含有2列(例如日期和价格)的CSV文件,并打印在控制台上。 但在我的控制台上,数字不按列排序。他们彼此相邻。如何在控制台中打印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中实例化并打印到控制台即可。使用系统的 ; using 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++;
}
}
}
的
感谢您的代码。我希望的输出是在C#控制台上逐行打印CVS文件的结果。输出如下 –
示例:日期价格 –
'行1:01/01/2015 200' –
这听起来像一个格式化的问题。
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
用于查看String Formatting更多信息。
可能重复的[如何读取从csv文件数据转换成C#控制台应用](http://stackoverflow.com/questions/12582223/how-to-read-data-from- csv-file-into -c-sharp-console-application) –
'foreach(var listA中的元素);'括号后面的分号结束语句(它有效)并且不循环到下一行S)。当然,你的意思是没有分号? 'foreach(listA中的var元素)' – OmegaMan
你想要的输出是什么?你能告诉我们你想要的产品线是什么样的。 I.E.第1行= [1,2](换行)第2行= [2,3]等? – thinklarge