我需要在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"总共出现三次,然后显示出来。
如果您需要我清除其他任何内容,请发表评论。
答案 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));