从第二个表单中删除列表中的数据

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (28)

我有一个表单,我在包含学生信息的csv文件中读取,该文件有两列StudentNumberMark。我想允许用户单击第一个表单上的一个按钮,然后转到另一个名为“ deleteRecord在此表单上”的表单,用户将键入a StudentNumber和a Mark以及与其对应的记录将从列表中删除两条信息。

由于我是C#的新手,我不知道如何解决这个问题,所以任何帮助都将受到赞赏。

我的列表:

public static List<string> studentInfo = new List<string>();

我将该列表中的所有数据存储在名为lstMarks的列表框中

我还要向用户确认记录已成功删除。

提问于
用户回答回答于

如果所有数据都存储在列表中,只需使用LINQ并为索引列表中的每个学生添加一个数字。

首先,您需要创建一个类,并且(我推荐它)将它放在一个文件夹中。 看起来如何。

然后你必须把这些东西放在课堂上:

public class Student
{
    public int StudentNumber {get; set;}
    public int Mark {get; set;}
    public int Index {get; set;}
}

现在添加另一个列表:

partial class MainWindow : Window
{
    private List<Student> _studentInfo = new List<Student>()
    {
        new Student() {Index = 0, StudentNumber = 0, Mark = 0}
        // ...
    }

然后在deleteRecord代码的顶部添加使用文件夹的名称和两个类:

using ExampleFolder.Class;

您需要调用您的学生类才能修改学生编号和标记和索引。

Student studentInfo = new Student();
    int iIndex = 0;

    var req = from info in studentInfo
              where info.StudentNumber == txtStudentNumber && info.Mark == txtMarks
              select info.Index; // Starts with 0 for the first student in the list
    foreach(var num in req)
    {
        iIndex = num;
    }
    studentInfo.Remove(studentInfo[iIndex]);

    MessageBox.Show("Deleted!");

扫码关注云+社区

领取腾讯云代金券