我已经搜索过,但还没有找到我的答案。免责声明:我是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