首页 > 解决方案 > 从消息框中的文本框中的 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);
}

我忘了提一下,对于我的应用程序,它只是一个带有按钮的文本框,我输入了您在代码中看到的分数,然后我想让用户在消息框中评分。

标签: c#arrayliststruct

解决方案


这里和网络上有很多答案可以帮助您完成任务。首先,删除 ArrayList,因为它将所有内容都装箱到对象中,然后您需要担心拆箱。

使用看起来很像的列表:

var allGrades = new List<Test>()

然后简单地使用 linq 来查询:

allGrades.FirstOrDefault(x => x.grade == myGrade)

达达...工作完成


推荐阅读