输出表与foreach和格式很好
本文关键字:格式 很好 foreach 输出 | 更新日期: 2023-09-27 18:34:24
我想在一个漂亮的表格中输出我的程序的结果。对于表格,我的意思是它们之间列出的文件,然后是制表器,它们之间列出了分数。我怎样才能实现这一点?目前,我的程序能够一次打印出一个文件,但所有其他文件都在它们之间得分。结果应如下所示:
file1 score1
file2 score2
file3 score3
但目前它看起来像这样:
file1 score1
score2
score3
file2 score1
score2
score3
我认为第二个foreach
是错误的,但是如何在没有for/foreach
的情况下输出列表的一个元素?
这是我的代码:
List<string> _fileNameList = new List<string>();
List<double> _counterFleschScore = new List<double>();
string _fileNameList
foreach (string files in _fileNameList)
{
Console.Write(files + "'t't't't");
foreach (double listingFleschScore in _counterFleschScore)
{
Console.Write("{0:N1}", listingFleschScore);
Console.WriteLine("");
}
}
在这种情况下,您应该使用 for
循环。问题是你有两个嵌套的foreach
循环。
请确保分数列表至少与文件列表一样大,否则可能会出现索引超出范围的异常。对于完全安全的解决方案,您应该添加一些检查,为了清楚起见,我省略了这些检查。
List<string> _fileNameList = new List<string>();
List<double> _counterFleschScore = new List<double>();
for (var i=0;i<_fileNameList.Count;++i)
{
Console.Write(_fileNameList[i] + "'t't't't");
Console.Write("{0:N1}", _counterFleschScore[i]);
Console.WriteLine("");
}
改进的代码如下所示。
var _fileNameList = new List<string>();
var _counterFleschScore = new List<double>();
var count = Math.Min(_fileNameList.Count, _counterFleschScore.Count);
for (var i=0; i < count; ++i)
{
Console.WriteLine(string.Format("{0}'t't't't{1:N1}", _fileNameList[i], _counterFleschScore[i]));
}
为什么要
经历所有的麻烦,只需使用:ConsoleTables
,Nuget也可用。
还有Console Utilities
Nuget也可用。