検索しましたが、答えが見つかりません。免責事項:私はC#を初めて使用しますが、次のプログラムを作成する作業があります:既存のログファイルから読み取り、タブで解析し、結果を特定のステータスに制限します(電子メールを処理します)、部門ごとにグループ化します(つまり、Investment Bank)、次に、部門ごとの電子メールの変換量の統計を計算し、新しいログファイルに出力します。
質問をする前に、プログラム自体について少し背景を説明したかった。私は現在、部門ごとにグループ化したいと思っているところですが、その方法がわかりません。
編集:元のデータ:
Status Division Time Run Time Zip Files Conversions Returned Files Total E-Mails
Process E-mail Investment Bank 12:00 AM 42.8596599 1 0 1 1
End Processing 12:05 AM 44.0945784 0 0 0 0
Process E-mail Investment Bank 12:10 AM 42.7193253 2 1 0 1
Process E-mail Treasury 12:15 AM 4.6563394 1 0 2 2
これが私がこれまでに持っているコードです:
static void Main()
{
{
List<string> list = new List<string>();
using (StreamReader reader = new StreamReader(Settings.LogPath + "2012-3-10.log"))
{
string line;
int i = 0;
while ((line = reader.ReadLine()) != null)
{
list.Add(line);
i++;
string[] split = line.Split('\t');
string processing = split[0];
if(processing.StartsWith("Process"))
{
string division = split[1];
int zipFiles;
int.TryParse(split[4], out zipFiles);
int conversions;
int.TryParse(split[5], out conversions);
int returnedFiles;
int.TryParse(split[5], out returnedFiles);
int totalEmails;
int.TryParse(split[5], out totalEmails);
だから私はそれが次のようにコンソールに何かを吐き出すところまでプログラムを持っています:
Investment Bank
1
0
1
1
Treasury
1
0
2
2
Investment Bank
2
1
0
1
私が今やろうとしているのは、「投資銀行」や「財務」などでグループ化して、合計を計算できるようにすることです。
最終的なログファイルは次のようになります。
Division Zip Files Conversions Returned Files Total E-mails
Investment Bank 3 1 1 2
Treasury 1 0 2 2