我要完成的是阅读CSV文件并获取每行中的逗号计数。所有CSV文件都相同。有9列,它们由(,)
分隔所以我编写了一个简单的函数来读取文件并使用foreach
循环读取文件中的每一行。
public static void readCSVFile(string path)
{
string _path = path;
string [] text = File.ReadAllLines(_path);
foreach (string line in text)
{
string currentLine = line;
Console.WriteLine("\t" + line);
}
}
因此,currentLine
通常会有如下输出:
number,10/21/14 07:01:10,00:28:29,号码(姓名),号码;号码(姓名),号码,号码(姓名),N / A,号码
行中总共有八个,
。如何以编程方式获取每行中commas
的总数,以便我可以在foreach
循环中执行以下操作:
foreach (string line in text)
{
string currentLine = line;
if (totalNumberOfCommas == 8)
{
//do something
}
else
{
//do something else
}
答案 0 :(得分:6)
如果您只想计算逗号,可以利用字符串实现IEnumerable<char>
这一事实,这样就可以使用Count
这样:
var commas = line.Count(c => c == ',');
答案 1 :(得分:2)
一种方法是使用String.Split功能。
foreach (string line in text)
{
string currentLine = line;
string[] eachColumn = currentLine.Split(',');
if (eachColumn.Length == 9)
{
//do something
}
else
{
//do something else
}
}
请注意,如果实际数据中有逗号(而不是字段分隔符),则无法正常工作。您可能应该查看一个csv解析器来帮助解决这类问题。
答案 2 :(得分:1)
你可以试试这样的事情
foreach (string line in text)
{
string currentLine = line;
int totalNumberOfCommas = currentLine.Split(',').Length - 1;
if (totalNumberOfCommas == 8)
{
//do something
}
else
{
//do something else
}
}