行の最初の文字であるレコード タイプによって、ファイル内の特定の行の出現回数をカウントしようとしています。合計行数は正しく、「その他」の数も正しいのですが、切り替え結果の行数が合計されません。foreach は 13 回実行されていますが、カウントが更新されていません。
static void Main(string[] args)
{
int i1LineCount = 0;
int i2LineCount = 0;
int i3LineCount = 0;
int i4LineCount = 0;
int iOther = 0;
int iCount = File.ReadLines(@"c:\single.txt").Count();
foreach (string line in File.ReadLines(@"c:\single.txt"))
{
String sFirstChar = line.Substring(0, 1);
switch (sFirstChar)
{
case "1":
i1LineCount = i1LineCount+1;
break;
case "2":
i2LineCount = i2LineCount+1;
break;
case "3":
i3LineCount = i3LineCount+1;
break;
case "4":
i4LineCount = i4LineCount+1;
break;
default:
iOther = iOther+1;
break;
}
}
Console.WriteLine("Line Count = " + iCount);
Console.WriteLine("1 lines = " + i1LineCount);
Console.WriteLine("2 lines = " + i1LineCount);
Console.WriteLine("3 lines = " + i1LineCount);
Console.WriteLine("4 lines = " + i1LineCount);
Console.WriteLine("Other lines = " + iOther);
}
私が読んでいるtxtファイルは次のようになります(#の前に ' がないと、それなしでは表示できませんでした):
'# \ 1 4 4 2 2 2 3 2 4 4 '#
私が得ている結果は次のとおりです。
Line Count = 13
1 lines = 1
2 lines = 1
3 lines = 1
4 lines = 1
Other lines = 3
私は得ているはずです:
Line Count = 13
1 lines = 1
2 lines = 4
3 lines = 1
4 lines = 4
Other lines = 3