在上篇文章《C#从Azure Blob Storage上读取csv文件》https://blog.csdn.net/qq_33782655/article/details/108472657中已经读取到csv文件,但是只是将其保存为了string类型,但通常我们读取到csv文件后需要对其中的内容进行分析,处理一些数据。本篇介绍了如何处理其中的内容。
比如我的csv文件原本是这样的,我想要读取outcome为Passed的数量:
代码:
///<summary>
///计算从Azure Blob上读取的csv文件passed,failed,,的数量
/// </summary>
int passedCount = 0;
int failCount = 0;
int notExecutedCount = 0;
int inConclusiveCount = 0;
using (StringReader stringReader = new StringReader(text))
{
while (stringReader.Peek() >= 0)
{
string line = stringReader.ReadLine();
//Console.WriteLine(line);
string[] values = line.Split(',');
for (int i = 0; i < values.Length; i++)
{
if (i == 2 && values[2] == "\"Passed\"")
{
passedCount++;
}
else if (i == 2 && values[2] == "\"Failed\"")
{
failCount++;
}
else if (i == 2 && values[2] == "\"NotExecuted\"")
{
notExecutedCount++;
}
else if (i == 2 && values[2] == "\"InConclusive\"")
{
inConclusiveCount++;
}
}
}
}
代码分析:
我这里用到的text承接上篇中获取的内容,因为csv是按行存放的,每个字符串中间用,隔开,所以我们一行行的读取,读取到每一行.
string line = stringReader.ReadLine();
//Console.WriteLine(line);
string[] values = line.Split(',');
关于Split()的使用方法可以参考:https://docs.microsoft.com/en-us/dotnet/api/system.string.split?view=netcore-3.1