读取txt文件并计算所选单词出现的次数

时间:2017-03-19 02:48:52

标签: c# arrays listbox

我需要在ListBox控件中创建一个显示 Teams.txt 文件(包含所有MLB团队的文本文件)内容的应用程序。当用户在ListBox中选择一个团队时,应用程序应显示多少次 他们赢得了世界大赛。我有另一个文本文件( WorldSeriesWinners.txt ),它保留了从1903年到2016年按时间顺序赢得世界系列赛的每支球队。

我需要程序逐步执行WorldSeriesWinners文件,并将文件内容读入List或数组。因此,当用户在列表框中选择一个团队时,算法应该遍历列表或数组 计算所选团队出现的次数。然后将其显示在文本框中。

我已将teams.txt打开到listbox

string MLBTeams;

StreamReader InputFile;

InputFile = File.OpenText("MLBTeams.txt");

while (!InputFile.EndOfStream)
{
    MLBTeams = InputFile.ReadLine();
    listBox1.Items.Add(MLBTeams);
}    

我使用此代码来检测用户选择的内容。

listBox1.SelectedItem.ToString();

现在来了困难的部分。我需要让程序逐步执行WorldSeriesWinners文件,比较并计算它显示的次数,这就是我正在努力的地方。例如,如果在listbox中选择了芝加哥小熊队,并且按下了“检查”按钮,则应该通过WorldSeriesWinners文件查看" Chicago Cubs"总共出现三次,然后显示出来。 如果您需要我清除其他任何内容,请发表评论。

1 个答案:

答案 0 :(得分:0)

这是一个非常简单的例子,根据提供的问题和示例代码做出某些假设。

//these are string[] (string arrays)
var teams = File.ReadAllLines(teamsPath); // Assuming "TeamName" per line.
var winners = File.ReadAllLines(winnersPath);// Assuming "YYYY TeamName" per line

//add teams to list box
for(var i = 0; i < teams.Length; i++) {
    listBox1.Items.Add(teams[i]);
}

当选择一个团队时,检查团队的获胜者并保持运行计数

var team = listBox1.SelectedItem.ToString();
var count = 0;
for(var i = 0; i < winners.Length; i++) {
    if(winners[i].Contains(team)) count++;
}

使用linq

也可以这样做
var team = listBox1.SelectedItem.ToString();
var count = winners.Count(winner => winner.Contains(team));