c# - 从消息框中的文本框中的 ArrayList 中获取单个值
问题描述
我正在为学校练习而不是作业学习 Struct 和 Arraylist。我想知道在我的按钮单击事件中在消息框中获得成绩的最佳方法是什么。如果有人能指出我正确的方向,将不胜感激,谢谢!
private ArrayList allGrades = new ArrayList();
public struct Test
{
public int score;
public string grade;
}
private void btnFindGrade_Click(object sender, EventArgs e)
{
int myGrade = Convert.ToInt32(txtScore.Text);
foreach (Test x in allGrades)
{
}
}
private void Form1_Load(object sender, EventArgs e)
{
Test t;
t.score = 299;
t.grade = "F";
allGrades.Add(t);
t.score = 349;
t.grade = "D";
allGrades.Add(t);
t.score = 399;
t.grade = "C";
allGrades.Add(t);
t.score = 449;
t.grade = "B";
allGrades.Add(t);
t.score = 500;
t.grade = "A";
allGrades.Add(t);
}
我忘了提一下,对于我的应用程序,它只是一个带有按钮的文本框,我输入了您在代码中看到的分数,然后我想让用户在消息框中评分。
解决方案
这里和网络上有很多答案可以帮助您完成任务。首先,删除 ArrayList,因为它将所有内容都装箱到对象中,然后您需要担心拆箱。
使用看起来很像的列表:
var allGrades = new List<Test>()
然后简单地使用 linq 来查询:
allGrades.FirstOrDefault(x => x.grade == myGrade)
达达...工作完成
推荐阅读
- c# - 如何参考 2D 对象上的 Z 轴以在场景中的玩家身后生成弹丸?
- c - SDL_LoadBMP() 失败:无法打开 .bmp
- prolog - Prolog 棋子动作
- python - 在音高计算中处理对数时的浮点精度
- applescript - Automator+AppleScript:多个桌面问题
- node.js - 我安装了旧版本的 nodejs/npm 但 npm 不起作用
- google-cloud-dataflow - 提交失败时的数据流行为
- python - PLY 文件和 Ransac
- nan - 在 python 中使用 statsmodel 进行逻辑回归期间 LLR p 值为 nan
- android - 使用 ExternalProject_Add 编译 google/protobuf - Android