我正在尝试编写代码 阅读与此类似的数字文本文件
1234
5678
0123
并计算每个数字的总次数 在文件中重复
我可以打开文件并解析内容 到列表框但我不知道如何计算 每个0-9出现的总次数 整个文件。
我希望有人能告诉我 从理论上讲,如何攻击这个。
我是使用Visual Studio 2012的VB相对初学者。 我不是学生。
提前致谢!!!
答案 0 :(得分:1)
您可以使用LINQ GroupBy
创建Dictionary(Of String, Int32)
:
Dim numberCounts As Dictionary(Of String, Int32) = File.ReadLines("Path").
GroupBy(Function(line) line.Trim()).
ToDictionary(Function(group) group.Key, Function(group) group.Count())
因此,每个字典键都是文件中的(唯一)数字,值是它的数量。
如果您想知道文件中包含每个数字(0-9)的数字:
Dim digitCounts As Dictionary(Of Char, Int32) = File.ReadLines("Path").
SelectMany(Function(line) line.Where(AddressOf Char.IsDigit)).
GroupBy(Function(digitChar) digitChar).
ToDictionary(Function(group) group.Key, Function(group) group.Count())
答案 1 :(得分:0)
首先,不建议将数据解析到列表框。您不应使用用户界面元素来存储数据。用户界面元素用于显示数据和接受来自用户的输入。切勿将它们用于其他任何事物。通过分离问题,您可以使您的应用程序更容易调试,更容易理解和更容易修改(想象您想要完全更改界面,因此它不会使用列表框...如果这样做很难做到你如何进行数据存储。)
其次,您正在寻找的工具是system.collections.generic命名空间中的Dictionary类。尝试阅读课程的描述,看看你是否可以弄清楚如何使用它来解决问题。如果您无法使用该代码,请发布一些代码。