我已經搜索過,但還沒有找到我的答案。免責聲明:我是C#的新手,但我有一項工作要創建以下程序:從現有日誌文件讀取,按Tab分析它們,將結果限制爲特定狀態(Process E-mail),按分組分組即投資銀行),然後按部門計算電子郵件轉換量的統計數據,並打印到新的日誌文件中。按分組計算後的分組結果
希望在提問之前給出一點關於程序本身的背景知識。我目前正處於我想按部門分組,並且不知道如何去做的地步。
編輯:原始數據:
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
我現在想要做的,是由「投資銀行」,「財政部」,等組c然後能夠計算總數。
最後的日誌文件看起來像這樣:
Division Zip Files Conversions Returned Files Total E-mails
Investment Bank 3 1 1 2
Treasury 1 0 2 2
什麼是您的原始數據? – 2012-04-04 13:57:22
爲什麼不只是在流讀取器上使用開關盒來根據您的標準分離數據(無論是指定Treasury vs. Investment Bank等)。我個人可能會捕獲每個部門作爲自己的對象,並將其包裝在父對象中以供引用。 IE Class Division有一個名單和List –
CBRRacer
2012-04-04 14:18:46
@Johnny_D - 添加了原始數據集,介意你這只是一個非常小的日誌文件視圖,還有更多的部門等 – 2012-04-04 14:27:16