获取文本文件中第一个字符的计数?

时间:2019-06-27 20:36:37

标签: c# .net

我有一个很大的文本文件,看起来像这样,其中有一行,开头是A,结尾是C,中间有x个B:

A

B

B

B

C

获取A,B或C出现次数的次数的最佳方法是什么?所有这些行都有更多的数据,但这是我想要达到的目的。

我是否必须读取整个文件,还是一次最好地读取一行?

3 个答案:

答案 0 :(得分:2)

我认为类似的东西会起作用

foreach (var grouping in File.ReadAllLines("<file-path-here>").GroupBy(x => x[0]))
{
    Console.WriteLine($"char: {grouping.Key}, count: {grouping.Count()}");
}

答案 1 :(得分:1)

下面的代码段是一个简单的实现:

 int iBCount = File.ReadAllLines(filePath).Count -2;
 int iACount = 1; // We already knew this
 int iCCount = 1; // We already knew this

此外,如果您知道每行的字节大小(每行的大小必须相同)并且您担心性能,则可以按照以下方式简单地计算“ B”行的数量

 // There will be no problem with typecast if each lines is the same length in bytes
 int iBLines = (int)(new System.IO.FileInfo(pathToFile).Length / FIXED_LINE_SIZE_IN_BYTES); 

答案 2 :(得分:0)

string [] lines = File.ReadAllLines(filePath)

int A_count = 0, B_count = 0, C_count = 0;
foreach (string line in lines)
{
    switch(line[0])
    {
        case 'A':
            A_count++;
            break;
        case 'B':
            B_count++;
            break;
        case 'C':
            C_count++;
    }
}