当前位置:  开发笔记 > 编程语言 > 正文

从文件中读取文本并对其应用一些操作

如何解决《从文件中读取文本并对其应用一些操作》经验,为你挑选了1个好方法。

我有一个关于如何从文件中读取文本并对其执行操作的问题

我有这个包含的文本文件

//名字 - //性别--------- //出生// m1 // m2 // m3

fofo, male,    1986, 67, 68,  69
momo, male,    1986, 99, 98,  100
Habs, female,  1988, 99, 100, 87
toto, male,    1989, 67, 68,  69
lolo, female,  1990, 89, 80,  87
soso, female,  1988, 99, 100, 83

现在我知道如何逐行阅读,直到我达到null.

但是这次我想要稍后执行和平均函数来获得第一个数字m1的平均值

然后得到仅女性和男性的平均m1

以及其他一些我无能为力的操作


我需要帮助我不知道如何得到它我想到的是读取文本文件中的每一行并将其放在一个字符串然后拆分字符串(str.Split(',');)但如何获取每个字符串的m1记录我真的很困惑,如果我使用正则表达式得到整数?我应该使用数组2d吗?我完全迷失了,有什么想法吗?

如果你可以通过代码样本来改进任何想法,那将是非常好的,并且从你那里开始善意.

在我完成之后,我会发布给你们检查.

{作为一个女孩我认为我做错了决定加入IT社区:-(}



1> Tim Jarvis..:

尝试这样的事情.

  var qry = from line in File.ReadAllLines(@"C:\Temp\Text.txt")
            let vals = line.Split(new char[] { ',' })
            select new
            {
              Name = vals[0].Trim(),
              Sex = vals[1].Trim(),
              Birth = vals[2].Trim(),
              m1 = Int32.Parse(vals[3]),
              m2 = Int32.Parse(vals[4]),
              m3 = Int32.Parse(vals[5])
            };

  double avg = qry.Average(a => a.m1);
  double GirlsAvg = qry.Where(a => a.Sex == "female").Average(a => a.m1);
  double BoysAvg = qry.Where(a => a.Sex == "male").Average(a => a.m1);

推荐阅读
coco2冰冰
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有