我有一个关于如何从文件中读取文本并对其执行操作的问题
我有这个包含的文本文件
//名字 - //性别--------- //出生// 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社区:-(}
尝试这样的事情.
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);