c# - C# 数据比较
问题描述
我的任务是从两个文本文件中读取数据,将该数据存储在两个单独的数组中,读取有多少行匹配,有多少行不匹配,并显示哪些特定行不匹配。我知道 for 循环会更好,但我不记得该怎么做。我不确定从这里去哪里,如果有人知道任何可以提供帮助的东西,我们将不胜感激。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
namespace Final_Project
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
public void grade_Click(object sender, EventArgs e)
{
string[] A = new string[20];
string[] B = new string[20];
StreamReader ifile;
StreamReader ifile2;
ifile = File.OpenText("answerkey.txt");
ifile2 = File.OpenText("response.txt");
int correct = 0;
int incorrect = 0;
string str = "";
string str2 = "";
while (ifile.EndOfStream == false & ifile2.EndOfStream == false)
{
str = ifile.ReadLine();
str2 = ifile2.ReadLine();
}
A[correct] = str;
B[incorrect] = str2;
if (A[0] == B[0])
{
correct++;
}
else
{
incorrect++;
}
if (A[1] == B[1])
{
correct++;
}
else
{
incorrect++;
}
if (A[2] == B[2])
{
correct++;
}
else
{
incorrect++;
}
if (A[3] == B[3])
{
correct++;
}
else
{
incorrect++;
}
if (A[4] == B[4])
{
correct++;
}
else
{
incorrect++;
}
if (A[5] == B[5])
{
correct++;
}
else
{
incorrect++;
}
if (A[6] == B[6])
{
correct++;
}
else
{
incorrect++;
}
if (A[7] == B[7])
{
correct++;
}
else
{
incorrect++;
}
if (A[8] == B[8])
{
correct++;
}
else
{
incorrect++;
}
if (A[9] == B[9])
{
correct++;
}
else
{
incorrect++;
}
if (A[10] == B[10])
{
correct++;
}
else
{
incorrect++;
}
if (A[11] == B[11])
{
correct++;
}
else
{
incorrect++;
}
if (A[12] == B[12])
{
correct++;
}
else
{
incorrect++;
}
if (A[13] == B[13])
{
correct++;
}
else
{
incorrect++;
}
if (A[14] == B[14])
{
correct++;
}
else
{
incorrect++;
}
if (A[15] == B[15])
{
correct++;
}
else
{
incorrect++;
}
if (A[16] == B[16])
{
correct++;
}
else
{
incorrect++;
}
if (A[17] == B[17])
{
correct++;
}
else
{
incorrect++;
}
if (A[18] == B[18])
{
correct++;
}
else
{
incorrect++;
}
if (A[19] == B[19])
{
correct++;
}
else
{
incorrect++;
}
if (correct >= 14)
{
passfail.Text = "Passed";
}
else
{
passfail.Text = "Failed";
}
string[] result = File.ReadAllLines("answerkey.txt");
correctbox.Text = correct.ToString();
incorrectbox.Text = incorrect.ToString();
}
}
}
解决方案
这里有几个指针:
- 使用File.ReadAllLines读取文件。
- 编写一个
for
循环遍历答案文件行并将 A[i] 与 B[i] 进行比较并更新correct
和incorrect
。 - 考虑一下响应文件的行数少于答案文件的情况。
推荐阅读
- wordpress - 如何将 wordpress 集成到 valet plus 中的 magento 2 项目中?
- python - 将数据集从 uci 导入到 pandas
- node.js - 异步函数中的Nodejs console.log
- javascript - 通过javascript顺利删除和添加类
- elasticsearch - ElasticSearch 集群始终自动平衡
- swift - 我正在创建键盘扩展(swift)但无法获得键盘高度
- python - 概率线拟合函数?
- javascript - 事件监听器仅适用于最后创建的元素
- scala - sbt.ResolveException: 未解决的依赖
- node.js - node.js 路线设计 - 是否将功能重构为自己的路线?