45 a
36 a
58 a
21 a
31 b
12 b
23 b
21 c
32 c
45 c
…
这是我的文件格式,我要先计算带有a的行数,写在输出文件的第一行,再把带有a的行写在下面,之后再写带b的行,再写带c的行。输出文件是下面的格式:
a 4
45
36
58
21
b 3
31
12
23
c 3
21
32
45
…
我现在是先读一遍源文件,计算出带a、b、c各自的行数,写在一个临时文件里,然后再重新读一遍源文件,同时读临时文件,再写到输出文件中。
我总觉得这样很繁琐,不知道有没有简便的方法,读一次源文件就可以实现?
------解决思路----------------------
用streamreader读出所有行,自己放到列表或数组中,然后自己遍历或用linq统计,组织显示数据
------解决思路----------------------
对a,b,c分别开一个:
List<string> aList = new List<string>();
List<string> bList = new List<string>();
List<string> cList = new List<string>();
你读第一遍的时候就存到各自的List数组里面去,写文件的时候从List数组里面取就是了。
------解决思路----------------------
如果数据量大,也可以使用N个临时文件来分别记录每个字母的数据,
这样还省事,最后,一个dos命令直接搞定:
copy a_count.txt + a.txt + b_count.txt + b.txt .......