VB - 文件中每个数字的计数

时间:2015-03-14 21:58:50

标签: vb.net

我正在尝试编写代码 阅读与此类似的数字文本文件

 1234
 5678
 0123     

并计算每个数字的总次数  在文件中重复

我可以打开文件并解析内容  到列表框但我不知道如何计算  每个0-9出现的总次数  整个文件。

我希望有人能告诉我  从理论上讲,如何攻击这个。

我是使用Visual Studio 2012的VB相对初学者。 我不是学生。

提前致谢!!!

2 个答案:

答案 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类。尝试阅读课程的描述,看看你是否可以弄清楚如何使用它来解决问题。如果您无法使用该代码,请发布一些代码。