作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
好吧,这个标题并不是最好的。但这是我的问题:
我制作了一个小程序,当外部程序发生特定事件时,它会将一些名称和一个整数写入 .txt 文档。
事情是一个名字可以在文档中出现在几行中,所以我想总结每个特定人的整数,以便我得到他/她的总点数,然后对其进行排序。
例如:
原行:
Aaaa Aaa 5
Bbbb Bbb 7
Cccc Ccc 2
Aaaa Aaa 4
Cccc Ccc 4
Bbbb Bbb 1
Dddd Ddd 1
我想要的输出:
1. Aaaa Aaa 9
2. Bbbb Bbb 8
3. Cccc Ccc 6
4. Dddd Ddd 1
有没有办法在 C# 中做到这一点?我试图阅读文件中的每一行并搜索一个人的名字。但这并没有真正帮助,我不知道如何解决这个问题。有什么建议吗?
最佳答案
显然,文本在某种程度上是您用来汇总数字的关键字,那么为什么不使用 Dictionary<string, int>
呢?先总结后写?
例子:
Dictionary<string, int> sums = new Dictionary<string, int>();
...
if (sums.ContainsKey(theNewString))
sums[theNewString] += theNewNumber;
else
sums[theNewString] = theNewNumber;
当你知道你已经完成了,写这个文件。您也可以在每次更新字典后重新写入该文件,但请记住,如果您不清除它,字典会越来越大。
另外:如果程序重新启动,这将不起作用,除非您在程序每次启动时都创建一个新文件。否则,当程序开始继续求和时,您必须将现有文件读入字典。
关于c# - 如何将多行读到同一行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17084558/
我是一名优秀的程序员,十分优秀!